2026년 10월 21일, LiteLLM의 릴리스 파이프라인이 공격자에게 장악되어 PyPI와 Docker Hub에 악성 버전이 배포되었습니다. 정상적인 개발 과정이 아닌, 공격자가 내부 권한을 이용해 빌드 소스를 조작한 사건입니다.

공격자는 BerriAI/litellm 저장소가 아니라 이름이 유사한 Berri-AI/litellm 저장소의 코드를 빌드하도록 워크플로를 변경했습니다. 이 변경 사항은 정식 서명과 배포 절차를 그대로 통과하여 외부로 노출되었습니다.

한국 시간으로 19시 8분에 브랜치 보호 기능이 워크플로 변경을 한 차례 거부했으나, 곧바로 권한 있는 개발자 계정의 자격 증명으로 보호 조치가 무력화되었습니다. 이후 19시 46분부터 20시 8분까지 스테이징 빌드가 성공했고, 20시 11분에 두 번째 개발자 계정으로 운영 배포 승인이 이루어졌습니다.

20시 39분부터 20시 40분 사이에 Linux, macOS, Windows용 악성 휠 파일 7개가 PyPI에 업로드되었습니다. 이어 20시 46분에는 v1.107.0, latest, main-latest, main-stable 태그의 Docker 이미지가 게시되었습니다. 이 이미지들은 자격 증명 수집기와 원격 코드 실행 백도어를 포함하고 있었습니다.

해당 시간대에 버전을 고정하지 않고 litellm==1.107.0을 설치하거나 지정된 태그로 컨테이너를 실행한 환경에서는 접근 가능한 모든 키가 유출되었을 가능성이 높습니다. 따라서 즉시 관련 비밀값을 교체해야 합니다. 안전하다고 알려진 버전은 1.106.2입니다.

영향받은 환경에서는 pip install 명령어를 먼저 실행하면 안 됩니다. 악성 코드는 import 없이도 Python 시작 시 실행되는 .pth 파일과 sitecustomize.py 백도어 형태로 심어져 있기 때문입니다. Python을 실행하지 않는 상태에서 흔적을 찾는 점검이 선행되어야 합니다.

이번 사고는 OpenAI나 Anthropic 등 여러 LLM API를 하나의 인터페이스로 묶는 LiteLLM의 특성상, 사내 게이트웨이로 사용하던 많은 개발자와 인프라 운영자에게 직접적인 타격을 주었습니다. 공식 사고 보고서와 GitHub 이슈 #47826을 통해 타임라인이 확인되었습니다.