Инцидент начался с кражи транзитного проездного, старого ноутбука и файлов конфигурации у Маркуса Чена из-за сбоя у Kubernetes, но реальная угроза раскрылась чуть позже. Чен попытался войти в реестр nmp, но его аппаратный ключ 2FA пропал. Поиск замены в Google привел его на фишинговый сайт yubikey-official-store.net, который опубликовал его учетные данные и скрипты .npmrc, .pypirc и ~/.cargo/credentials на сервер в стране без экстрадиции. В репозиторий left-justify, получившему 847 миллионов загрузок в неделю, был добавлен скрипт postinstall для кражи этих данных, а тикет с жалобой на эксфильтрацию закрыли как низкого приоритета. В цепочке зависимостей оказались ключи от vulpine-lz4, библиотеки на Rust для декомпрессии LZ4 с логотипом лисы. Под видом исправления ошибки в версии 0.4.1 в код добавили скрипт, запускающий внешние команды, если имя хоста содержит такие слова, как build, ci, action или даже karen. Исследователь Кэрэн Ойлераан заметила атаку, когда её ноутбук запустил вредоносный код, однако запрос о безопасности оставили без ответа, так как настоящий разработчик выиграл миллион евро в лотерею и уехал на ферму коз.
Вредоносный скрипт нацелился на CI-пайплайн snekpack, инструмента сборки на Python, использующего vulpine-lz4 ради памяти без ошибок. Версия 3.7.0 библиотеки установилась на 4,2 миллиона компьютеров, добавив SSH-ключи и обратный шелл, активирующийся исключительно по вторникам. Ситуация усугубилась, когда независимый майнинг-червь cryptobro-9000, распространяющийся через уязвимость jsonify-extreme, случайно обновил snekpack до версии 3.7.1, откатившись к безопасной версии vulpine-lz4. Тем не менее, в тот вторник активированный шелл попытался связаться с сервером команд и управления, который сам был заражен червем и не мог ответить. Разработчики snekpack выпустили заявление об «отсутствии активной эксплуатации», так как доказательства были просто не искали. Учетные данные повернули, но авторы признали, что не трогали репозиторий два года. Официально инцидент закрыли, когда CVE-2024-YIKES всё ещё лежал в эфире, пока MITRE и GitHub спорили о классификации. Ключевые выводы показали смешанный результат: 2FA не сработало, зависимость от Rust в Python слишком глубока, а черви майнинга имеют лучшие практики CI/CD. Автор призывает надеяться на доброжелательных червей или рассмотреть карьеру в фермерстве коз, так как реальный ответственный за атаку — подрядчик, чья последняя работа в пятницу уже была.