Якщо ви отримали від мене листа з посиланням на цю сторінку, то тому, що ваш сайт, судячи з усього, використовує вразливу версію Wallet System for WooCommerce (плагін WordPress wallet-system-for-woocommerce від WP Swings). На цій сторінці пояснюється, чому це важливо і як це виправити.

Це повідомлення стосується вразливості CVE-2026-42654, вразливості високої серйозності (CVSS 7.1) у механізмі облікових записів та відновлення пароля плагіна, яка могла б дозволити несанкціонованому запиту отримати доступ до облікового запису клієнта. Вона зачіпає усі випуски до 2.7.6 і усунена у версії 2.7.6. Якщо ви використовуєте уражену версію, оновіть Wallet System for WooCommerce до 2.7.6 або новішої (рекомендується останній випуск 2.7.8).

Кілька слів про терміновість, оскільки вона відрізняється від інших повідомлень, які я надсилав: це вразливість доступу до облікового запису, а не захоплення сервера чи отримання повних прав адміністратора, і немає жодних ознак того, що її експлуатують. Ця сторінка є запобіжним попередженням, а не звітом про інцидент. Оновлення закриває проблему, і жодних екстрених заходів не передбачається.

Це вразливість плагіна, а не ядра WordPress чи WooCommerce. Повністю актуальні WordPress і WooCommerce не захищають вас, якщо сам плагін Wallet System for WooCommerce перебуває на ураженій версії.

Чи є це повідомлення справжнім?

Так. Це добросовісне повідомлення в рамках відповідального розкриття інформації від незалежного дослідника безпеки. Я не прошу у вас грошей, паролів чи доступу до вашого сайту і не намагався проникнути до нього, щось завантажити чи щось експлуатувати.

Усе, що я зробив: переглянув публічно доступні файли, які ваш сайт надає кожному відвідувачу (так само, як публічна ваша головна сторінка), і зазначив номер версії, який плагін Wallet System for WooCommerce публікує у своєму публічному файлі README.txt. Уразливої кінцевої точки я спеціально не торкався, і ніщо в цій перевірці не зачіпає ваші дані, вашу адміністративну панель чи будь-яку приватну частину вашого сайту (докладніше в розділі Що я робив і чого не робив нижче).

Якщо ви хочете переконатися в тому, хто я, ознайомтеся з контактними даними внизу цієї сторінки та на сторінці Про мене.

Чому це важливо

Wallet System for WooCommerce є доповненням до WooCommerce (близько 2 000 активних установок), яке дозволяє магазину пропонувати своїм клієнтам цифровий гаманець: клієнти зберігають баланс, поповнюють його та оплачують ним замовлення. В уражених версіях привілейовані дії з гаманцем у механізмі облікових записів та відновлення пароля плагіна були захищені спільним токеном безпеки, який плагін видавав кожному відвідувачу, замість справжньої перевірки прав, прив’язаної до того, хто робить запит. Цей клас помилок називається обходом автентифікації через альтернативний шлях або канал (CWE-288): звичайний шлях входу перевіряє особу належним чином, але побічний шлях приймає спільний токен так, ніби той доводить авторизацію.

Практичний наслідок полягає в тому, що запит, який надходить цим побічним шляхом, доступним будь-якому зареєстрованому клієнту (а магазин із клієнтським гаманцем майже завжди дозволяє відкриту реєстрацію), міг би діяти як авторизований користувач і отримати доступ до облікового запису клієнта.

Вразливість отримала оцінку 7,1 з 10 (висока серйозність). Щоб зберегти правильну перспективу: це проблема доступу до облікових записів, вона сама по собі не передає зловмиснику ваш сервер чи обліковий запис адміністратора, і немає жодних ознак активної експлуатації (її немає в каталозі відомих експлуатованих вразливостей CISA, і мені не відомо про жодні повідомлення про експлуатацію). Якщо в моєму листі згадувалася ця проблема, це означає, що версія, про яку повідомляє ваш сайт, потрапляє в уражений діапазон. Я не перевіряв, чи вразливий саме ваш сайт, лише те, що він повідомляє про уражену версію.

Хороша новина: оновлення до виправленої версії закриває проблему, а саме оновлення нескладне.

Як перевірити свою версію

Вам не обов’язково вірити мені на слово щодо того, яку версію ви використовуєте.

З публічного маніфесту (вхід у систему не потрібен): відкрийте у браузері yourdomain.com/wp-content/plugins/wallet-system-for-woocommerce/README.txt. Зверніть увагу, що цей плагін постачає свій readme як README.txt (великими літерами), на відміну від багатьох плагінів, які використовують readme.txt малими літерами. Рядок Stable tag: поблизу початку містить версію, про яку повідомляє ваша установка, і це той самий публічний файл, який прочитав я.

З адміністративної панелі WordPress (якщо у вас є доступ):

  1. Увійдіть до панелі керування WordPress (зазвичай за адресою yourdomain.com/wp-admin).
  2. Перейдіть до Plugins потім Installed Plugins.
  3. Знайдіть Wallet System for WooCommerce і запишіть версію, показану під його назвою.

Потім застосуйте це правило і зверніть увагу, що версії порівнюються чисельно, а не за алфавітом:

  • Будь-яка версія нижча за 2.7.6: уражена, оновіться зараз. Кожен попередній випуск містить цю вразливість; безпечної старішої версії немає.
  • 2.7.6 або новіша, включно з 2.7.7 і 2.7.8: уже виправлена.
  • Не дайте себе ввести в оману текстовим порядком: 2.5.11 є пізнішим випуском, ніж 2.5.9, тому що 11 більше за 9. Порівнюйте кожне число по черзі, а не читайте версію як текст (обидва ці приклади нижчі за 2.7.6 і тому уражені; суть у тому, як читати номери версій загалом).

Як оновитися

Найбезпечніший шлях: оновлення через сам WordPress, попередньо створивши резервну копію:

  1. Створіть резервну копію вашого сайту (файли та база даних) перед внесенням змін. Більшість хостинг-провайдерів пропонують резервне копіювання в один клік, або скористайтеся плагіном резервного копіювання WordPress.
  2. В адмініструванні WordPress перейдіть до Dashboard потім Updates або Plugins потім Installed Plugins. Якщо оновлення Wallet System for WooCommerce вказано у списку, встановіть його звідси.
  3. Якщо ви віддаєте перевагу командному рядку, WP-CLI робить те саме: wp plugin update wallet-system-for-woocommerce.
  4. Якщо там не з’являється оновлення, ви можете отримати останній випуск безпосередньо зі сторінки плагіна в каталозі WordPress.org, Wallet System for WooCommerce, і оновити через Plugins потім Add New Plugin потім Upload Plugin.
  5. Після оновлення підтвердьте новий номер версії (2.7.6 або новіша; рекомендується останній випуск 2.7.8), дотримуючись наведених вище кроків, і перевірте, що ваш магазин та його функції гаманця працюють нормально.

Раз уже ви цим зайнялися, варто переконатися, що ядро WordPress, WooCommerce та ваші інші плагіни актуальні, оскільки той самий принцип застосовується до всіх із них.

Після оновлення

Оновлення до 2.7.6 або новішої закриває проблему, і для більшості магазинів на цьому завдання завершено. Немає жодних ознак того, що цю вразливість експлуатували, тому жодних екстрених заходів не передбачається: вам не потрібно вважати свій сайт скомпрометованим, вимикати його чи примусово скидати паролі.

Оскільки вразливість могла б дозволити несанкціонованому запиту діяти з обліковим записом клієнта, один рутинний подальший крок є доцільним: перегляньте нещодавню активність облікових записів і гаманців на предмет чогось незнайомого, наприклад коригувань балансу гаманця, яких ви не робили, запитів на виведення чи зарахування коштів, яких ви не впізнаєте, або змін в облікових записах клієнтів, яких ваші клієнти не запитували. Ставтеся до цього як до звичайного порядкування, яке магазин робить періодично, а не як до реагування на інцидент. Якщо щось усе ж виглядає підозріло, застосовуються звичайні кроки (скиньте пароль цього клієнта та перегляньте активність разом із ним), і ви можете звернутися до мене із запитаннями.

Що я робив і чого не робив

Щоб бути повністю прозорим щодо перевірки, яка стояла за моїм листом: я лише читав публічні файли, які ваш сайт уже надає кожному відвідувачу, а саме публічний файл README.txt плагіна та вашу головну сторінку. Я не отримував доступу до вашої адміністративної панелі WordPress, вашої бази даних чи будь-якої приватної частини сайту. Зокрема, уразливої кінцевої точки я не торкався і нічого не тестував та не експлуатував.

Це спостереження на основі версії: ваш сайт повідомляє про версію в ураженому діапазоні. Сайт у цьому діапазоні може вже бути захищений іншими засобами (наприклад, фаєрволом вебзастосунків або бекпортованим виправленням), тому це повідомлення не є твердженням, що ваш сайт був вразливим на момент моєї перевірки.

У мене немає вебмайстра / я застряг

Якщо ви не та людина, яка обслуговує сайт, будь ласка, перешліть цю сторінку тому, хто це робить (вашому веброзробнику, агенції чи хостинг-провайдеру). Вони швидко впізнають наведені вище кроки.

Якщо ви обслуговуєте сайт самостійно і застрягли, я з радістю безкоштовно допоможу вам знайти правильний напрямок. Зв’яжіться зі мною, використовуючи контактні дані нижче.

Контакти

Evan Harris, дослідник безпеки

Я звертаюся з подібних питань виключно для того, щоб допомогти операторам захистити їхні сайти. Якщо ви віддаєте перевагу тому, щоб з вами більше не зв’язувалися, просто повідомте мені про це, і я поважатиму це.

Джерела

Офіційні повідомлення та відстеження

Виробник / плагін