litellm 1.82.7/1.82.8 침해: PyPI를 통한 자격 증명 탈취 메커니즘
PyPI의 litellm 라이브러리 1.82.7 및 1.82.8 버전에 SSH 키, 클라우드 자격 증명, Kubernetes 시크릿, API 키를 탈취하는 악성 코드가 포함되어 있습니다. 이 공격은 공급망을 악용하며, Python 인터프리터를 시작하거나 모듈을 불러올 때 자동으로 실행됩니다. Cursor의 MCP 플러그인 등 간접 종속성을 가진 시스템이 영향을 받습니다.
사건 탐지
.pth 파일의 포크 폭탄으로 호스트 자원이 고갈되면서 공격이 드러났습니다. 이 버그가 없었더라면 악성 코드는 은밀하게 작동했을 가능성이 큽니다. 해당 버전은 2026년 3월 24일 10:39–10:52 UTC에 게시되었으나 GitHub에는 아무런 업데이트가 없었습니다—악성 코드는 코드 리뷰를 우회해 PyPI 아티팩트에만 주입되었습니다.
FutureSearch 연구원들은 릴리스 태그 부재를 지적했습니다. 저장소는 깨끗한 상태이며, 이는 공급망 공격의 전형적인 양상입니다.
악성 코드 기술 세부 사항
1단계: 데이터 수집
페이로드가 추출하는 내용:
- SSH 키 및 설정.
.env파일.- AWS, GCP, Azure 자격 증명.
- Kubeconfig 및 Kubernetes 시크릿.
- 데이터베이스 암호.
- 셸 히스토리.
- 암호화폐 지갑 파일.
- 환경 변수.
클라우드 제공자의 IMDS 엔드포인트로 쿼리를 전송합니다.
2단계: 데이터 유출
데이터는 RSA-4096(하드코딩된 공개 키)을 사용한 AES-256-CBC로 암호화되어 models.litellm[.]cloud—비공식 도메인으로 전송됩니다.
3단계: 지속성
Kubernetes에서 악성 코드는 다음을 수행합니다:
- 서비스 계정 토큰을 통해 모든 클러스터 시크릿을 읽습니다.
- 호스트 FS를 마운트한
kube-system에 특권alpine:latest파드를 생성합니다. - 백도어
~/.config/sysmon/sysmon.py를 설치합니다. - 모든 노드에서 실행되도록 systemd 사용자 서비스를 등록합니다.
1.82.8 버전은 Python에서 자동 실행되는 litellm_init.pth(34 628 bytes)를 사용합니다. 1.82.7 버전은 proxy/proxy_server.py에 난독화된 코드를 포함합니다.
탐지 및 복구
다음 명령어로 시스템을 확인하세요:
# litellm 버전
pip show litellm
# uv 캐시 흔적
find ~/.cache/uv -name "litellm_init.pth"
# 백도어
ls ~/.config/sysmon/sysmon.py
ls ~/.config/systemd/user/sysmon.service
Kubernetes에서는 kubectl get pods -n kube-system | grep node-setup- 명령어를 사용하세요.
1.82.7/1.82.8 버전이 설치된 경우:
pip uninstall litellm
rm -rf ~/.cache/uv
# 또는: pip cache purge
Endor Labs 확인으로 깨끗한 3월 22일 버전인 1.82.6으로 롤백하세요. SSH 키, 클라우드 토큰, kubeconfig, API 키, DB 암호 등 모든 자격 증명을 재발급하세요. 지난 24–48시간 동안의 CI/CD 파이프라인과 Docker 이미지를 확인하세요.
TeamPCP 캠페인 맥락
이 공격은 2025년 12월 이후 진행 중인 TeamPCP 캠페인의 일부입니다:
- 3월 19일: Trivy (
trivy-action의 75/76 태그). - 3월 21–23일: KICS/Checkmarx, OpenVSX, npm의 CanisterWorm (64+ 패키지).
- 3월 24일: litellm.
공통 특징: AES-256 + RSA-4096, 하나의 공개 키. litellm의 GitHub Issue #24512이 “not planned”으로 닫혔으며 의심스러운 댓글이 있습니다—계정 침해 가능성.
침해 지표
- C2 도메인:
models.litellm[.]cloud. - 파일:
litellm_init.pth. - SHA-256:
ceNa7wMJnNHy1kRnNCcwJaFjWX3pORLfMh7xGL8TUjg. - 백도어:
~/.config/sysmon/sysmon.py. - K8s:
kube-system의node-setup-*파드.
주요 포인트
.pth의 악성 코드가import없이 트리거되어 모든 Python 프로세스에 영향을 줍니다.- 유출은 암호화되어 있으며 C2는 가짜 litellm 도메인입니다.
- Kubernetes 익스플로잇으로 특권 파드를 통해 전체 클러스터에 접근합니다.
- TeamPCP 공격 체인의 일부: Trivy, KICS, npm 패키지를 모니터링하세요.
- 1.82.6으로 롤백 + 모든 자격 증명 재발급이 필수입니다.
— Editorial Team
아직 댓글이 없습니다.