Внутренняя проверка безопасности обернулась цепной реакцией, которая за считанные минуты испортила Meta-Wiki и заразила пользовательские скрипты.

У Wikimedia Foundation выдался очень неприятный день. На проектах Wikimedia сработал самораспространяющийся JavaScript-червь, который начал портить страницы Meta-Wiki и подменять пользовательские скрипты. Из-за атаки инженерам пришлось временно ограничить редактирование, откатить вредоносные правки и срочно вычищать зараженный код.
Первые сигналы появились на техническом форуме Wikipedia, где редакторы заметили волну странных автоматических правок. В случайные страницы добавлялись скрытые скрипты и следы вандализма, а масштаб проблемы быстро стал таким, что команда Wikimedia решила на время прикрыть редактирование сразу на разных проектах и заняться расследованием.
По данным из трекера Phabricator, цепочка началась после запуска вредоносного скрипта, размещенного в русской Википедии. Речь идет о файле User:Ololoshka562/test.js, который впервые загрузили еще в марте 2024 года. BleepingComputer пишет, что файл мог быть связан со скриптами из прежних атак на вики-проекты.
Судя по истории правок, вредоносный код впервые сработал сегодня с учетной записи сотрудника Wikimedia во время проверки пользовательских скриптов. Пока неизвестно, сотрудник запустил файл намеренно в рамках теста, случайно подгрузил код во время проверки или злоумышленники скомпрометировали учетную запись.
Опасность заключалась в механике распространения. MediaWiki поддерживает как глобальные JavaScript-файлы, вроде MediaWiki:Common.js, так и персональные пользовательские страницы вида User:<имя>/common.js. Браузер редактора выполняет такой код, чтобы менять интерфейс и добавлять полезные функции. Вредоносный test.js использовал как раз эту возможность. После запуска в браузере авторизованного редактора скрипт пытался переписать личный common.js, чтобы заражение сохранялось при следующих входах, а при наличии нужных прав еще и менял глобальный MediaWiki:Common.js. Такой шаг превращал заражение в цепную реакцию, потому что вредоносный загрузчик начинал автоматически выполняться у других редакторов.
Кроме закрепления в пользовательских и глобальных скриптах, червь умел случайным образом выбирать страницу через Special:Random и вносить туда мусорные правки. В страницу вставлялась картинка и скрытый JavaScript-загрузчик, замаскированный в разметке. По оценке BleepingComputer, за время инцидента затронули примерно 3996 страниц, а около 85 пользователей получили подмененные common.js. Сколько страниц позже удалили, пока неясно.
Во время зачистки сотрудники Wikimedia откатывали изменения в common.js у множества пользователей, а часть измененных страниц затем подавили в истории правок, чтобы вредоносные вставки больше не были видны публично. Сейчас внедренный код уже удалили, а редактирование снова работает.
Позже Wikimedia Foundation передала BleepingComputer официальное заявление и уточнила масштаб последствий. По версии фонда, сотрудники проводили проверку безопасности пользовательского кода и во время ревизии случайно активировали «спящий» вредоносный фрагмент. Код оставался активным только 23 минуты. За этот промежуток червь изменял и удалял контент лишь на Meta-Wiki, причем материалы уже восстанавливают. Wikimedia Foundation также заявила, что не нашла признаков атаки на саму Википедию и не увидела утечки персональных данных.
Полный технический разбор причин инцидента фонд пока не опубликовал. Главный открытый вопрос пока остается прежним: как именно старый вредоносный скрипт смог ожить во время внутренней проверки и почему защитные механизмы не остановили распространение сразу.