Изследователи по киберсигурност предупредиха за компрометиране на веригата за доставки, засягащо разработчика на WordPress плъгини BdThemes, което накара екипа по плъгини на платформата за управление на съдържание (CMS) временно да преустанови възможността за тяхното изтегляне.
„За разлика от традиционните атаки по веригата за доставки на софтуер, нито един файл с изходен код не е бил модифициран в официалното хранилище на WordPress.org“, заяви изследователят от Wordfence Паоло Тресо. „Вместо това злонамерени субекти са отровили статичен отдалечен поток от JSON данни, извличан от компонент за административни рекламни банери.“
Списъкът със засегнатите плъгини е представен по-долу:
- Element Pack Addons for Elementor – Elementor Widgets, Elementor Templates, Elementor Addons [bdthemes-element-pack-lite] – над 100 000 активни инсталации
- Live Copy Paste for Elementor – Cross Domain Copy Paste & Page Duplicator [live-copy-paste] – над 6 000 активни инсталации
- Pixel Gallery Addons for Elementor – Easy Grid, Creative Gallery, Drag and Drop Grid, Custom Grid Layout, Portfolio Gallery [pixel-gallery] – липсва информация
- Prime Slider Addons for Elementor – Widgets, Templates & Elementor Addons [bdthemes-prime-slider-lite] – липсва информация
- Smart Admin Assistant – Dashboard and Site Enhancements [smart-admin-assistant] – липсва информация
- Ultimate Post Kit Addons for Elementor [ultimate-post-kit] – липсва информация
- Ultimate Store Kit – Addon For WooCommerce, EDD and Elementor [ultimate-store-kit] – над 6 000 активни инсталации
Потребителите, които посещават страниците на всеки от гореспоменатите плъгини в директорията на WordPress, виждат съобщение, че те са затворени от 7 или 8 август 2026 г. и не са налични за изтегляне до приключването на „цялостен преглед“.
Според компанията за сигурност на WordPress, проблемът се корени във вътрешен компонент, наречен Biggopti, който се доставя заедно с плъгините. Системата е проектирана да извлича рекламни банери от техния API сървър и да ги визуализира в административния панел на WordPress, като извлича съответните JSON файлове от пространство (bucket) в DigitalOcean Spaces.
Установено е, че библиотеката съдържа уязвимост от тип междусайтово изпълнение на скриптове (XSS) в кода за анализиране на JSON отговора чрез параметъра „display_id“ от Sigmative API поради недостатъчно ескейпване от страна на клиента. В резултат на това атакуващ, който успее да компрометира API, може да инжектира произволни уеб скриптове в страниците, които се изпълняват всеки път, когато даден потребител осъществи достъп до тях.
Тъм като скриптът се изпълнява при всяко зареждане на страницата „wp-admin“, инжектираният код се активира скрито в браузъра на всеки влязъл в системата администратор. Уязвимостта е оценена с 5.4 по системата CVSS, което показва средна степен на опасност.
Смята се, че промяната е въведена за първи път на 1 март 2026 г. в „bdthemes-prime-slider-lite“, преди да бъде приложена и при останите. Атаката е забележителна с това, че се управлява изцяло чрез API и не изисква обновяване на плъгините или промяна на файлове върху диска.
„Злонамерени субекти са получили достъп за запис до това пространство, подменяйки легитимните JSON отговори с модифициран злонамерен код за експлоатиране на уязвимостта“, споделят от Wordfence. „XSS уязвимостта се задейства скрито в браузъра на всеки влязъл администратор при всяко зареждане на страницата wp-admin. Оттам инжектираният скрипт създава нелегитимни администраторски акаунти, качва плъгини с уеб шел и осъществява връзка с команден сървър (C2).“
Основният злонамерен код се доставя до плъгините с помощта на крайния API адрес „api-data-all-records“. Злонамереният код, който представлява JavaScript файл с име „w2.js“, извършва следните действия:
- Свързва се с командния сървър (C2) „ia-cdn[.]com/fz/c“ с адреса на компрометирания уебсайт, за да извлече инструкции за насочване. Изпълнението се прекратява, ако командният сървър върне статус „skip“ или „done“.
- Създава нов нелегитимен администратор чрез WordPress REST API.
- Изтегля фалшив ZIP архив на плъгин от командния сървър и го инсталира чрез стандартната форма за качване на плъгини, което води до разполагане на PHP уеб шел („emer-run.php“).
- Задейства уеб шела, за да инсталира два модула за поддържане на достъп (persistence) в директорията на задължителните плъгини („mu-plugins“): единият е „magic-login задна врата“ (backdoor), която позволява административен достъп без автентификация чрез URL параметър (?_wplogin=<token>), насочен към най-отдавна регистрирания администратор на сайта; другият е прикриващ модул срещу анализ, който се свързва с заявките към базата данни на WordPress, за да скрие присъствието на нелегитимните потребителски акаунти от списъка с администратори и да показва общия брой потребители, като ги изключва.
Алтернативен злонамерен код („x.js“), открит на инфраструктурата на разработчика на плъгина, се доставя на жертвите чрез крайния API адрес „api-data-records“. Той е проектиран да генерира „детерминистични“ администраторски идентификационни данни, които са математически извлечени от хост името на компрометирания уебсайт.
„Този алгоритъм генерира предвидими потребителски имена (bd_ последвано от 6-знаков base36 хеш) и пароли (Bd@26! последвано от хеша и x), свързвайки ги с имейл адрес в @wordpress.org“, обясняват от Wordfence. „Тъй като идентификационните данни са детерминистични, атакуващите нямат нужда да съхраняват централизирано списъци с компрометирани сайтове, а екипите за реагиране на инциденти могат да изчислят точното потребителско име и парола, които да търсят в подозрителните домейни.“