← Усі статті Блог

Хтось купив три десятки плагінів WordPress — і в кожен зашив бекдор

Коротко: у 2025 році хтось скупив на Flippa (майданчику для продажу готових інтернет-бізнесів) набір із понад 30 плагінів WordPress. Потім випустив одне тихе оновлення «для сумісності», в якому сховав бекдор (прихований чорний хід у коді), дав йому відлежатися близько восьми місяців — поки сайти спокійно його ставили — і на початку квітня 2026 року ввімкнув. Найнеприємніше тут не код. Плагіни не змінювалися — змінився їхній власник, і сайтам, на яких вони стоять, про це ніхто не повідомив.

Ми тримаємо хостинг з обслуговуванням і стежимо за такими історіями по клієнтських сайтах, тож нижче — розбір простою мовою, з посиланнями на тих, хто реально розкрив атаку, а не на перекази.

Що сталося, по порядку

Це був набір Essential Plugin — лінійка невеликих утиліт (спливні вікна, таймери зворотного відліку, слайдери), у яких разом понад 20 000 активних установок за лічильником самого WordPress.org; у рекламі розробник заявляв понад 400 000 установок і 15 000 клієнтів. У 2025 році весь набір продали на Flippa за нерозкриту суму покупцеві, відомому лише під псевдонімом «Kris».

Далі пастку готували не поспішаючи:

КолиЩо сталося
2025Набір із 30+ плагінів продають на Flippa новому власнику
8 серп. 2025Виходить версія 2.6.7. У списку змін — «перевірка сумісності з WordPress 6.8.2». Насправді додано 191 рядок PHP (мова, якою працює WordPress) — захований бекдор
Близько 8 місяцівКод лежить без руху. Сайти ставлять і автоматично оновлюють плагін, довіряючи тому, що працює в них роками
Початок квіт. 2026Бекдор віддалено вмикають, і він починає впроваджувати шкідливий код
7 квіт. 2026Команда плагінів WordPress.org підтверджує атаку, примусово розсилає виправлення і прибирає всі уражені плагіни з каталогу

Відлежка — найрозважливіший хід. Новий плагін із бекдором ловлять швидко. А плагін, якому ви довіряєте три роки і який уночі сам непомітно оновився, — ні.

Зброю замаскували під «аналітику»

Коли бекдор увімкнувся, плагіни звернулися до analytics.essentialplugin.com — піддомену з безневинною назвою «аналітика» — і завантажили на сайт файл wp-comments-posts.php. Цей файл записав близько 6 КБ PHP-коду прямо в wp-config.php (він виріс з 3 345 до 9 540 байт) — один із найчутливіших файлів будь-якого WordPress-сайту. Звідти атакувальник міг писати на сайт що завгодно: спам-сторінки, переадресації, новий шкідливий код.

Ви нічого не натискали. Вас не розводили поштою. Загроза прийшла зсередини — із програми, яку ви поставили самі й навмисно.

Атаку зловили за резервною копією

Точну хронологію відновила Anchor Hosting, яка тримає щоденні копії через restic. Вони дістали wp-config.php із кількох копій за різні дні, порівняли розміри файлу і вирахували вікно активного впровадження: 6 квітня 2026 року, з 04:22 до 11:06 UTC — шість годин сорок чотири хвилини. Без копій за датами цей дописаний код виглядає просто частиною вашого сайту.

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

То хто насправді постраждав?

Ось що зазвичай опускають у заголовках. Підтвердженого числа реально заражених сайтів ніхто не публікував, і жодного названого постраждалого не оголосилося. Задокументований не «постраждалий», а масштаб ризику.

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

Але ризик — це ще не зараження. Вікно активного впровадження тривало менш ніж сім годин, а наступного дня WordPress.org примусово розіслав виправлення. Ті самі 6 КБ шкідливого PHP у wp-config.php отримали ті сайти, на яких потрібний плагін був активний і встиг у це вікно звернутися до сервера зловмисника, — і для них атакувальник міг писати на сайт що завгодно: спам-сторінки, приховані переадресації, новий шкідливий код, а звідти й далі вглиб.

Постраждалі, яких ніхто не рахує, — це покинуті сайти. Примусове оновлення доходить лише до тих, хто ще на зв’язку з WordPress.org; а сайт, у який ніхто не заходить — із тих, чий розробник тихо пішов, — може досі тихо нести в собі цей бекдор. Коротке й гучне вікно потрапило в новини. А тиха, розтягнута частина — те, що турбує нас.

Діра, яку не можна залатати: чиї насправді ваші плагіни

Ось чим ця атака відрізняється від звичайної поради «оновлюйте плагіни». Шукати не було чого — помилки в коді не було. Плагіни були в порядку. Змінилося те, хто ними керує. Як сформулювала Anchor Hosting, «у WordPress.org немає механізму, який би позначав чи перевіряв передачу плагіна новому власнику. Користувачам не надходить жодного повідомлення про зміну власника». Patchstack — компанія з безпеки, що розібрала код, — підтвердила бекдор більш ніж у 20 плагінах із набору.

Тобто стороння людина може купити плагін, на якому тримається ваша контактна форма, банер про куки чи таймер зворотного відліку, — а дізнаєтесь ви про це, лише коли сайт почне роздавати спам.

Що це означає для власника бізнесу

Особисто перевірити, хто непомітно скупив кожен плагін на вашому сайті, ви не зможете. Але ризик різко падає від пари звичок:

  • Менше плагінів. Кожен — це маленька компанія, яку завтра можуть продати. Найнебезпечніший той, що поставили одного разу і забули.
  • Помічайте зміни. Раптове нічне оновлення, файли, яких ви не створювали, wp-config.php, що виріс без причини, — це сигнали, якщо є кому дивитися.
  • Тримайте резервні копії окремо від сервера і за датами — не «копії ввімкнено», а реально окремо. Це і відновлення, і доказ.
  • Стежте за стрічками безпеки. Коли виходить така історія, усе вирішує розрив між «вразливість розкрили» і «закрили на вашому сайті» — ось де безкоштовно подивитися, які діри загрожують сайту.

Де тут ми

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

Зв'язатися

Покажіть ваш сайт. Скажемо, що насправді не так.

Безкоштовна 30-хвилинна розмова у WhatsApp, Telegram або дзвінком. Без презентацій, без нав'язування додаткових послуг. Якщо ми не підходимо — підкажемо, хто підійде.

Зв'язатись