1P by GN⁺ 7시간전 | ★ favorite | 댓글과 토론
  • 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 rand32바이트 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 내에 악성 코드 포함 보고됨
  • 권장 조치

      1. PyPI: litellm 1.82.8 즉시 제거 또는 yank 처리
      1. 사용자:
    • site-packages/litellm_init.pth 존재 여부 확인
    • 해당 버전 설치된 시스템의 모든 자격 증명 회전(rotate)
      1. 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 버전 고정 또는 제거 조치 수행