- Python 인터프리터 시작 시 자동 실행되는
.pth 파일이 포함되어, API 키·SSH 키·클라우드 토큰 등 민감 정보 수집 및 외부 전송 수행
- 악성 스크립트는 이중 base64 인코딩으로 숨겨져 있으며, 수집 데이터를 AES-256으로 암호화 후 RSA 공개키로 보호해
litellm.cloud로 전송
- 감염 시 로컬 환경·CI/CD·프로덕션 서버의 자격 증명이 모두 노출될 수 있음
-
1.82.7 버전에서도 악성 코드 존재가 보고되어, 두 버전 모두 위험
- 보안 커뮤니티는 패키지 제거, 자격 증명 회전, 공급망 보안 강화를 긴급 권고함
litellm 1.82.8 PyPI 패키지의 악성 litellm_init.pth 파일 보안 사고
-
litellm 1.82.8 버전의 PyPI 휠 패키지에 악성
.pth 파일(litellm_init.pth) 이 포함되어, Python 인터프리터가 시작될 때마다 자격 증명 탈취 스크립트가 자동 실행되는 문제 발생
- 이 파일은
import litellm 명령 없이도 실행되며, 공급망(Supply Chain) 공격 형태로 확인됨
- 패키지의
RECORD 파일에 악성 파일이 명시되어 있음
-
악성 동작 분석
-
.pth 파일은 Python 인터프리터 시작 시 자동 실행되는 특성을 이용
- 악성 스크립트는 이중 base64 인코딩으로 숨겨져 있으며, 디코딩 시 다음 단계를 수행
-
1단계: 정보 수집
-
시스템 정보:
hostname, whoami, uname -a, ip addr, ip route
-
환경 변수:
printenv를 통해 API 키, 시크릿, 토큰 등 수집
-
SSH 키:
~/.ssh/ 내 주요 키 파일 및 설정 파일
-
Git 자격 증명:
~/.gitconfig, ~/.git-credentials
-
클라우드 자격 증명: AWS, GCP, Azure 관련 설정 파일 및 토큰
-
Kubernetes 설정:
/etc/kubernetes/, ~/.kube/config 등
-
Docker 설정:
~/.docker/config.json 등
-
패키지 관리자 설정:
.npmrc, .netrc, .vault-token 등
-
쉘 히스토리:
.bash_history, .zsh_history 등
-
암호화폐 지갑:
~/.bitcoin/, ~/.ethereum/keystore/ 등
-
SSL/TLS 개인키:
/etc/ssl/private/, .pem, .key 파일
-
CI/CD 시크릿:
terraform.tfvars, .gitlab-ci.yml, Jenkinsfile 등
-
데이터베이스 자격 증명: PostgreSQL, MySQL, Redis 등 설정 파일
-
Webhook URL: Slack, Discord 등 URL 검색
-
2단계: 암호화 및 외부 전송
- 수집된 데이터를 임시 파일에 저장
-
openssl rand로 32바이트 AES-256 세션 키 생성
-
openssl enc -aes-256-cbc -pbkdf2로 데이터 암호화
- 세션 키는 하드코딩된 4096비트 RSA 공개키로 암호화
- 두 파일을
tpcp.tar.gz로 묶어 전송
- 전송 대상:
https://models.litellm.cloud/ (공식 도메인 litellm.ai와 다름)
-
기술적 세부 사항
-
.pth 파일은 Python의 site-packages/ 내에 존재하며, 인터프리터 시작 시 자동 실행
- 페이로드는 이중 base64 인코딩으로 탐지 회피
- 공격자는
litellm.cloud 도메인을 사용해 데이터 유출 서버 운영
- RSA 공개키의 시작 부분:
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvahaZDo8mucujrT15ry+...
-
영향 범위
-
litellm==1.82.8 설치 시, 환경 변수, SSH 키, 클라우드 자격 증명 등 모든 비밀 정보가 유출
- 영향 대상:
- 로컬 개발 환경
- CI/CD 파이프라인
- Docker 컨테이너
- 프로덕션 서버
- 추가로, 1.82.7 버전도
proxy/proxy_server.py 내에 악성 코드 포함 보고됨
-
권장 조치
-
-
PyPI:
litellm 1.82.8 즉시 제거 또는 yank 처리
-
-
사용자:
-
site-packages/ 내 litellm_init.pth 존재 여부 확인
- 해당 버전 설치된 시스템의 모든 자격 증명 회전(rotate)
-
-
BerriAI: PyPI 배포 자격 증명 및 CI/CD 파이프라인 보안 점검 필요
-
발견 환경
- OS: Ubuntu 24.04 (Docker 컨테이너)
- Python: 3.13
- 설치 경로: PyPI
- 발견 시점: 2026년 3월 24일
-
커뮤니티 반응 및 추가 논의
- 다수의 개발자들이 “수천 명이 이미 감염되었을 가능성”을 언급
- 일부 사용자는 1.82.7 버전도 감염되었음을 확인
- 보안 전문가들은 의존성 고정(pinning) 및 공급망 보안 강화 필요성 강조
-
agnosticlines 등은 GitHub Actions의 취약성과 공급망 공격의 반복적 발생을 지적
-
MountainGod2는 “의존성은 커밋 해시로 고정하고, 새 릴리스는 검증 후 사용해야 함”이라 경고
- 여러 프로젝트(
mlflow, home-assistant, morphik-core 등)가 litellm 버전 고정 또는 제거 조치 수행