피드로 돌아가기
LiteLLM loses game of Trivy pursuit, gets compromised
The RegisterThe Register
Security

LiteLLM loses game of Trivy pursuit, gets compromised

LiteLLM이 CI/CD 파이프라인의 Trivy 취약점을 통한 공급망 공격으로 v1.82.7, v1.82.8 버전이 PyPI에서 제거

Thomas Claburn2026년 3월 24일6intermediate

Context

LiteLLM 프로젝트의 CI/CD 파이프라인에 포함된 Trivy 취약점 스캐너가 공격자의 목표가 되었다. 2024년 2월 말 공격자들은 Trivy의 GitHub Actions 환경 설정 오류를 악용하여 권한 있는 접근 토큰을 탈취했다.

Technical Solution

  • Trivy 버전 태그 변조: 공격자들이 기존 버전 태그와 연결된 trivy-action GitHub Action 스크립트를 수정하여 실행 중인 워크플로우에 악성 코드를 주입
  • 악성 Trivy 릴리스 배포: 2024년 3월 19일 TeamPCP가 침해된 자격증명으로 악성 Trivy v0.69.4 릴리스 게시
  • DockerHub 이미지 배포: 2024년 3월 22일 악성 Trivy v0.69.5, v0.69.6 버전을 DockerHub 이미지로 게시
  • PyPI 토큰 탈취: Trivy를 통해 탈취한 LiteLLM의 PYPI_PUBLISH 토큰(GitHub 리포지토리의 .env 변수로 저장)으로 악성 코드가 포함된 LiteLLM 패키지 게시
  • litellm_init.pth 파일 주입: 악성 코드가 credential-stealing 기능을 가진 컴포넌트 파일로 삽입

Impact

LiteLLM v1.82.7, v1.82.8 두 버전이 PyPI에서 제거되었다. 영향을 받은 환경에서 이용 가능했던 모든 자격증명이 노출되었을 수 있다.

Key Takeaway

버전 태그를 사용하는 CI/CD 파이프라인은 기본 설정에서 코드 변경 여부를 감지하지 못하므로, 공급망 공격에 취약하다. 환경 변수로 저장된 민감한 토큰의 접근 제어와 고정된 커밋 해시 사용이 필수적이다.


CI/CD 파이프라인을 구축하는 팀에서는 외부 액션(GitHub Actions 등)의 버전 태그 대신 고정된 커밋 해시를 사용하고, PyPI, npm 같은 패키지 저장소 토큰을 .env 파일에 저장하는 대신 JWT 기반 신뢰 게시(trusted publishing) 또는 별도 보안 계정으로 관리하며, 모든 CI/CD 자격증명에 2FA를 활성화해도 토큰 자체 탈취 방지는 불가능하므로 주기적 로테이션과 최소 권한 원칙을 적용해야 한다.

원문 읽기