Невідомий зловмисник придбав на торговому майданчику Flippa портфель із понад 30 безкоштовних WordPress-плагінів з багаторічною репутацією — і додав до кожного з них прихований бекдор. Шкідливий код непомітно існував на сайтах вісім місяців, перш ніж був активований у квітні 2026 року. WordPress.org закрив усі 31 плагін в один день.
Купівля репутації: як усе починалося
Портфель плагінів під назвою Essential Plugin (раніше — WP Online Support) будувала індійська команда розробників починаючи з 2015 року. За понад десять років вони створили понад 30 безкоштовних плагінів із преміум-версіями: слайдери, галереї, таймери зворотного відліку, спливаючі вікна, тестимоніали тощо.
Наприкінці 2024 року доходи бізнесу впали на 35–45%, і один із засновників виставив весь портфель на продаж через майданчик Flippa. Покупець, відомий лише як «Kris» із досвідом у SEO, криптовалюті та гемблінг-маркетингу, придбав бізнес за шестизначну суму. Flippa навіть опублікував кейс-стаді про цей правочин у липні 2025 року.
Перший же SVN-коміт нового власника виявився бекдором. Засновник хостингової компанії Anchor Hosting Остін Гіндер опублікував у своєму блозі детальний опис атаки на ланцюг постачання.
Бекдор: вісім місяців очікування
8 серпня 2025 року новий власник випустив версію 2.6.7 плагіна Countdown Timer Ultimate. У журналі змін значилося лише «перевірка сумісності з WordPress 6.8.2». Насправді оновлення додавало прихований модуль, який дозволяв зловмисникові дистанційно керувати сайтом.
Шкідливий код нічого не робив протягом восьми місяців — аж до 5–6 квітня 2026 року, коли атака була активована. Модуль зв’язався із зовнішнім сервером і завантажив файл із назвою, навмисне схожою на стандартний файл WordPress. Далі у файл налаштувань сайту wp-config.php інжектувався масивний блок прихованого коду.
Шкідливе ПЗ показувало спам-посилання та підроблені сторінки лише пошуковим роботам — власники сайтів нічого не бачили. Щоб ускладнити блокування, зловмисники використовували адресу управляючого сервера, закодовану в смарт-контракті Ethereum: традиційне блокування домену не спрацювало б, адже нову адресу можна оновити прямо в блокчейні.
WordPress.org закрив усі плагіни за один день
7 квітня 2026 року команда WordPress.org Plugins Team остаточно закрила всі 31 плагін від автора essentialplugin. 8 квітня платформа примусово оновила плагіни на всіх сайтах до версії 2.6.9.1, яка нейтралізувала механізм зв’язку з сервером зловмисника. Однак примусове оновлення не очистило wp-config.php — якщо сайт вже встиг отримати шкідливий код, той продовжував працювати.
Список уражених плагінів
Перевірте свій сайт на наявність будь-якого з наведених нижче плагінів та негайно видаліть їх:
- Accordion and Accordion Slider
- Album and Image Gallery Plus Lightbox
- Audio Player with Playlist Ultimate
- Blog Designer for Post and Widget
- Countdown Timer Ultimate
- Featured Post Creative
- Footer Mega Grid Columns
- Hero Banner Ultimate
- HTML5 VideoGallery Plus Player
- Meta Slider and Carousel with Lightbox
- Popup Anything on Click
- Portfolio and Projects
- Post Category Image with Grid and Slider
- Post Grid and Filter Ultimate
- Preloader for Website
- Product Categories Designs for WooCommerce
- Responsive WP FAQ with Category (sp-faq)
- SlidersPack — All in One Image Sliders
- SP News And Widget
- Styles for WP PageNavi — Addon
- Ticker Ultimate
- Timeline and History Slider
- Woo Product Slider and Carousel with Category
- WP Blog and Widgets
- WP Featured Content and Slider
- WP Logo Showcase Responsive Slider and Carousel
- WP Responsive Recent Post Slider
- WP Slick Slider and Image Carousel
- WP Team Showcase and Slider
- WP Testimonial with Widget
- WP Trending Post Slider and Widget
Що робити: покроковий алгоритм дій
- Перевірте список встановлених плагінів. У панелі керування WordPress перейдіть до розділу «Плагіни» і порівняйте з наведеним вище списком.
- Деактивуйте та видаліть уражені плагіни. Не просто деактивуйте — видаляйте повністю. Шукайте альтернативи від перевірених авторів.
- Перевірте файл wp-config.php. Відкрийте файл через файловий менеджер хостингу або FTP. Нормальний розмір — близько 3–4 КБ. Якщо файл значно більший (6+ КБ) або ви бачите незрозумілий код у кінці рядка require_once ABSPATH . wp-settings.php — сайт скомпрометований.
- Якщо wp-config.php заражений — зверніться до фахівця. Просте видалення плагіна не допоможе: необхідне повне очищення сайту, перевірка всіх файлів і, можливо, відновлення з резервної копії, зробленої до 5 квітня 2026 року.
- Перевірте резервні копії. Порівняйте розмір wp-config.php у резервних копіях за різні дати. Якщо резервні копії зберігаються на хостингу, звернення до служби підтримки допоможе встановити точний момент зараження.
- Змініть паролі. Після очищення сайту змініть паролі адміністратора WordPress, бази даних та облікового запису хостингу.
- Встановіть плагін безпеки. Плагіни на кшталт Wordfence або iThemes Security допоможуть виявляти підозрілі зміни файлів у майбутньому.
- Відстежуйте сповіщення WordPress.org. Коли платформа закриває плагін через безпеку, у панелі адміністратора WordPress з’являється відповідне попередження. Ніколи не ігноруйте ці повідомлення.
Системна проблема: WordPress не перевіряє нових власників плагінів
Це вже не перший подібний випадок. Тижнем раніше аналогічна атака була виявлена з плагіном Widget Logic. У 2017 році покупець плагіна Display Widget (200 000 активних встановлень) так само впровадив спам-код після придбання.
WordPress.org не має жодного механізму для перевірки зміни власника плагіна. Ні сповіщення користувачів, ні додаткової перевірки коду при появі нового коміттера. Команда безпеки платформи відреагувала швидко після виявлення атаки — але між впровадженням бекдора і його виявленням минуло вісім місяців.
Цей інцидент ілюструє ключовий ризик ланцюжка постачання програмного забезпечення: навіть багаторічний надійний інструмент може стати загрозою після зміни власника. Перевіряйте, хто розробляє плагіни, які ви використовуєте, і стежте за змінами в їхньому авторстві.

