Версия 1.107.0 на LiteLLM беше компрометирана в PyPI на 21 октомври 2026 г., разпространявайки модул за кражба на идентификационни данни (инфостийлър) и троянец за отдалечен достъп (RAT) чрез всички седем разпространени wheel файла. Зловредното издание достигна и до Docker изображения, излагайки на риск системи на разработчици, среди за компилиране (build runners) и услуги за изкуствен интелект.

От Aikido предупредиха, че всеки, който е инсталирал засегнатата версия, трябва да приеме, че идентификационните му данни са компрометирани. От PyPI премахнаха версия 1.107.0, но свалянето на пакета не премахва вече инсталирания зловреден софтуер и не анулира тайните ключове, които атакуващите може вече да са откраднали.

Разследването на Socket посочва, че техният скенер е маркирал всички седем файла седем минути след публикуването им. Скоростта на откриване е от съществено значение, тъй като автоматизираните актуализации на зависимости могат да изтеглят компрометирано издание в множество среди, преди човек да е прегледал промяната в пакета.

Как се изпълнява зловредният софтуер в LiteLLM

Атаката използва стартиращи куки (startup hooks) на Python, вместо да разчита на това дадено приложение директно да импортира LiteLLM. Според техническия анализ на Wiz инсталацията поставя три файла – cook.pth, cook.py и sitecustomize.py – директно в директорията site-packages на Python.

Когато Python стартира, cook.pth импортира cook.py, който декодира скрития си код и стартира процеса по кражба на идентификационни данни. Това означава, че несвързана команда на Python може да задейства зловредния код след инсталацията, дори когато потребителят никога не отваря директно LiteLLM.

Инфостийлърът търси системна информация, данни от браузъри, тайни ключове на разработчици, облачни идентификационни данни и автентикационни файлове, използвани от AI инструменти. Докладваните цели включват частни SSH ключове, идентификационни данни за AWS, Google Cloud и Azure, пароли от браузъри, както и токени за инструменти като Claude и GitHub Copilot.

Събраната информация се криптира и изпраща чрез HTTP POST заявка към www[.]litellm[.]dev/healthcheck. Wiz идентифицира крайната точка като контролирана от атакуващите и проектирана да наподобява легитимната инфраструктура на LiteLLM. Инфостийлърът също така записва маркер във файла /tmp/.pc_once_72129118c59f5636c0bb, въпреки че този път може да бъде невалиден под Windows.

Отделен стартиращ файл, sitecustomize.py, осигурява пътя за зареждане на код от разстояние под Linux и macOS. Той прави опит да изтегли domain.txt от GitHub хранилището letters9813/pythonclient-test, след което използва върнатия адрес, за да свали и изпълни друг Python скрипт от крайна точка /codepy.

Това дава на атакуващите възможност да изпълняват допълнителен код при всяко следващо стартиране на засегнатите Python среди. Въпреки това потенциалната възможност не бива да се бърка с потвърдена активност. Wiz съобщава, че domain.txt не е бил попълнен по време на техния анализ и хранилището впоследствие е било свалено.

Потребителите на контейнери също трябва да направят проверка. Wiz идентифицира засегнати изображения на LiteLLM в GitHub Container Registry и Docker Hub, включително v1.107.0, latest, main-latest и main-stable. Поради това познатият таг на изображение не гарантира, че дадена инсталация е чиста.

Публичната дискусия около инцидента насочва и към логове от компилации, споменаващи Berri-AI/litellm – наподобяващо хранилище, което се различава от легитимния проект BerriAI/litellm само по едно тире. Това откритие повдига въпроси относно валидирането на източника на изданията, но не доказва пълния път на проникване или самоличността на атакуващия.

Екипите, които са инсталирали LiteLLM 1.107.0, трябва да изолират засегнатите хостове и билд машини, да запазят съответните регистрационни файлове (логове) и да третират достъпните тайни ключове като потенциално компрометирани. Разследванията трябва да обхванат записите за инсталирани пакети, внедрените контейнери, стартиращите файлове на Python и изходящите мрежови връзки към докладваната крайна точка за събиране на данни.

Подменете и анулирайте изложените облачни ключове, SSH ключове, браузърни сесии, токени за хранилища и идентификационни данни за AI услуги от чиста система. Подмяната единствено на пакета LiteLLM не е достатъчна, тъй като откраднатите идентификационни данни все още могат да осигурят неоторизиран достъп на други места.

В своя доклад Wiz посочва 1.106.2 като най-новата безопасна версия. Преизградете засегнатите среди от надеждни източници и заключете контейнерните инсталации към проверени хешове на изображения (image digests), вместо да разчитате на динамични тагове. Прегледайте логовете на облачните среди и системите за контрол на версиите за неочакван достъп след инсталацията.

Това е вторият докладван инцидент по компрометиране на веригата за доставки при LiteLLM за тази година. Cyber Security News по-рано отрази атаката срещу веригата за доставки на LiteLLM, засягаща версии 1.82.7 и 1.82.8, както и последвалото разследване относно изтекли облачни ключове и тайни от CI/CD процесите.

Тези по-ранни констатации не доказват, че същите киберпрестъпници стоят зад настоящия инцидент. Те обаче показват защо дори краткотрайно компрометиране на пакет може да породи дългосрочни проблеми със сигурността. Премахването на злонамереното издание ограничава новите изтегляния, докато възстановяването продължава да зависи от откриването на засегнатите системи, премахването на скритите вратички (backdoors) при стартиране и прекратяването на откраднатия достъп.