Выявлена подстановка вредоносной зависимости в ночные сборки PyTorch
Проблема затрагивает только экспериментальные ночные сборки PyTorch (PyTorch-nightly), пакеты со стабильными выпусками не пострадали. Вредоносная зависимость распространялась с 25 по 30 декабря 2022 года и была нацелена на компрометацию Linux-систем разработчиков, использующих тестовые сборки PyTorch.
Для совершения вредоносных действий атакующие воспользовались методом подмены зависимостей и загрузили в репозиторий PyPI пакет torchtriton, имеющий то же имя, что и пакет, размещённый в собственном репозитории PyTorch-nightly. Метод основан на том, что при использовании дополнительных репозиториев пакетный менеджер pip пытается загрузить внутренние зависимости и из публичных репозиториев, учитывая номер версии. Таким образом, при установке ночных сборок PyTorch пакетный менеджер pip обнаруживал более новый пакет torchtriton в репозитории PyPI и устанавливал его, вместо одноимённого пакета из репозитория PyTorch-nightly.
В опубликованную атакующими версию torchtriton был добавлен код для запуска исполняемого файла, который осуществлял поиск и отправку конфиденциальных данных с систем, работающих под управлением Linux. Среди прочего злоумышленникам отправлялась информация о системе, а также содержимое $HOME/.gitconfig, $HOME/.ssh/* и первых 1000 файлов в домашнем каталоге, размером менее 100 КБ. Данные передавались через туннель, организованный поверх DNS (отправлялись шифрованные DNS-запросы к DNS-серверу атакующих).
По имеющейся статистике вредоносный пакет torchtriton был загружен более 2000 раз.