JavaScript‑черв’як у Meta‑Wiki: як користувацький скрипт спричинив інцидент кібербезпеки у Wikimedia

CyberSecureFox 🦊

Фонд Wikimedia повідомив про короткий, але показовий інцидент кібербезпеки, під час якого саморозповсюджуваний JavaScript‑черв’як змінив тисячі сторінок у Meta‑Wiki та підмінив користувацькі скрипти частини редакторів. Щоб локалізувати загрозу, організація тимчасово заблокувала можливість редагування в усіх проектах Wikimedia.

Виявлення інциденту в Meta‑Wiki та перші кроки реагування

Першими аномалію помітили самі учасники спільноти: редактори зафіксували масові автоматизовані правки, які додавали на випадкові сторінки приховані скрипти та малозмістовний сміттєвий контент.

Обговорення проблеми стартувало на сторінці Village Pump (technical), після чого інцидент оперативно передали інженерам Фонду Wikimedia, що відповідають за безпеку та інфраструктуру MediaWiki.

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

Джерело JavaScript‑черв’я: тестовий користувацький скрипт у російській Вікіпедії

Згідно із записами у баг‑трекері Phabricator, точкою входу став користувацький JavaScript‑файл у російськомовній Вікіпедії за адресою User:Ololoshka562/test.js, завантажений ще в березні 2024 року та раніше вже пов’язаний з інструментами, що використовувалися в інших атаках на вікі‑проекти.

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

Механізм атаки: експлуатація користувацьких скриптів MediaWiki

Як працюють користувацькі JavaScript‑файли у Wikimedia

Платформа MediaWiki, на якій функціонують Wikipedia та інші проекти Wikimedia, дозволяє використовувати глобальні та персональні JavaScript‑файли, зокрема MediaWiki:Common.js і User:<username>/common.js, які виконуються у браузері авторизованих редакторів для кастомізації інтерфейсу та автоматизації рутинних дій.

Саме цей механізм став каналом атаки: після завантаження шкідливого test.js у браузері залогіненого користувача черв’як намагався модифікувати як глобальні, так і персональні скрипти, забезпечуючи собі закріплення та автоматичне виконання при наступних відвідуваннях сайту.

Саморозповсюдження через випадкові сторінки та зовнішній домен

Додатково шкідливий код викликав випадкову сторінку через сервіс Special:Random і впроваджував у неї зображення та прихований JavaScript‑завантажувач, який підтягував зовнішній скрипт з домену basemetrika[.]ru, що відповідає типовій моделі XSS‑черв’я із мінімальним початковим кодом та основною логікою, розміщеною поза інфраструктурою Wikimedia.

Масштаб інциденту та дії Wikimedia Foundation

За оцінками журналістів, JavaScript‑черв’як встиг змінити близько 3996 сторінок у Meta‑Wiki, а приблизно в 85 користувачів були підмінені файли common.js, що створювало довгостроковий ризик повторного виконання шкідливого коду при кожному вході таких редакторів.

Команда Wikimedia Foundation виконала масовий відкат змін у користувацьких скриптах, приховала скомпрометовані сторінки так, щоб вони не відображалися у публічній історії правок, видалила впроваджений JavaScript і перевірила цілісність ключових компонентів платформи перед відновленням можливості редагування.

За офіційною інформацією, шкідливий код був активний лише 23 хвилини і за цей час торкнувся виключно Meta‑Wiki: ознак атаки на основну Wikipedia чи інші проекти, а також витоків користувацьких даних не виявлено, а вміст постраждалих сторінок відновили з резервних копій та історії правок.

Ключові уроки для кібербезпеки веб‑платформ

Ризики користувацького коду та XSS‑черв’яків

Інцидент демонструє, що користувацькі JavaScript‑скрипти є одночасно потужним інструментом розширення функціональності й критичним вектором атаки: код виконується в довіреному контексті браузера редактора, має доступ до інтерфейсів платформи та може самостійно розповсюджуватися між обліковими записами, як це раніше спостерігалося, наприклад, у відомому XSS‑черв’яку Samy у MySpace.

Необхідні технічні та організаційні заходи захисту

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

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

Додатково доцільно впроваджувати автоматичний аналіз користувацьких JavaScript‑файлів на наявність підозрілих шаблонів (саморедагування, виклики зовнішніх доменів, ін’єкції в глобальні скрипти), а також навчати спільноту основам безпечної розробки та розумінню наслідків XSS‑атак і саморозповсюджуваних скриптів.

Цей інцидент у Meta‑Wiki наочно показує, що навіть «тестовий» або забутий користувацький скрипт може миттєво перетворитися на повноцінний JavaScript‑черв’як, тому власникам веб‑платформ варто переглянути політики роботи з кастомним кодом, посилити моніторинг та інцидент‑респонс і системно інвестувати в кіберграмотність адміністраторів і редакторів, зменшуючи шанс повторення подібних атак.

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.