Популярный Python-пакет elementary-data с более 1 млн ежемесячных скачиваний оказался скомпрометирован. Вредоносный код попал в официальный релиз и распространялся через PyPI и GitHub.
Как произошла атака
По данным Elementary Data, злоумышленники взломали пайплайн GitHub Actions.
Сначала они отправили pull request со специально оформленным комментарием. Уязвимость в обработчике GitHub Actions позволила выполнить shell-команды.
Далее из окружения CI извлекли токен GITHUB_TOKEN, с помощью которого были созданы ветки с вредоносным релизом. В результате в репозитории и PyPI появился пакет версии 0.23.3 с внедренным кодом.
Что делал вредоносный код
Код был зашифрован в base64 и активировался при установке пакета. После запуска он сканировал систему, собирал конфиденциальные данные и отправлял их злоумышленникам.
Среди украденных данных:
- SSH и SSL/TLS ключи;
- переменные окружения;
- доступы к AWS, GCP, Azure и Kubernetes;
- пароли к базам данных;
- ключи криптокошельков;
- история команд и конфиги (Git, CI/CD, Docker).
11 часов под угрозой
Вредоносная версия была доступна около 11 часов — с 01:20 до 12:45 по московскому времени 25 апреля.
Дополнительно зараженный код попал и в официальный Docker-образ проекта, что расширило масштаб атаки.
