• มีการรวมไฟล์ .pth ที่ถูกรันอัตโนมัติเมื่อเริ่มต้น Python interpreter ทำให้เกิดการรวบรวมและส่งออกข้อมูลสำคัญ เช่น API key, SSH key, cloud token ออกไปภายนอก
  • สคริปต์อันตรายถูกซ่อนไว้ด้วยการเข้ารหัส base64 สองชั้น และส่งข้อมูลที่รวบรวมได้ไปยัง litellm.cloud หลังจาก เข้ารหัสด้วย AES-256 และปกป้องด้วยกุญแจสาธารณะ RSA
  • หากติดเชื้อ ข้อมูลรับรองของ local environment, CI/CD และ production server อาจรั่วไหลทั้งหมด
  • มีรายงานว่า เวอร์ชัน 1.82.7 ก็มีโค้ดอันตรายอยู่ด้วย ทำให้ทั้งสองเวอร์ชันมีความเสี่ยง
  • ชุมชนด้านความปลอดภัยแนะนำอย่างเร่งด่วนให้ ลบแพ็กเกจ หมุนเวียนข้อมูลรับรอง และเสริมความมั่นคงปลอดภัยของซัพพลายเชน

เหตุการณ์ความปลอดภัยจากไฟล์อันตราย litellm_init.pth ในแพ็กเกจ PyPI ของ litellm 1.82.8

  • ในแพ็กเกจ wheel บน PyPI ของ litellm 1.82.8 มีการรวม ไฟล์ .pth อันตราย (litellm_init.pth) เอาไว้ ทำให้เกิดปัญหาที่ สคริปต์ขโมยข้อมูลรับรองจะรันอัตโนมัติทุกครั้งที่ Python interpreter เริ่มทำงาน
  • ไฟล์นี้สามารถทำงานได้แม้ไม่ต้องสั่ง import litellm และยืนยันว่าเป็นการโจมตีแบบ Supply Chain
  • มีการระบุไฟล์อันตรายนี้ไว้ในไฟล์ RECORD ของแพ็กเกจ
  • การวิเคราะห์พฤติกรรมอันตราย

    • ไฟล์ .pth อาศัยคุณสมบัติที่ รันอัตโนมัติเมื่อ Python interpreter เริ่มต้น
    • สคริปต์อันตรายถูกซ่อนไว้ด้วย base64 สองชั้น และเมื่อถอดรหัสแล้วจะทำงานตามขั้นตอนต่อไปนี้
  • ขั้นตอนที่ 1: รวบรวมข้อมูล

    • ข้อมูลระบบ: hostname, whoami, uname -a, ip addr, ip route
    • ตัวแปรสภาพแวดล้อม: เก็บ API key, secret, token ฯลฯ ผ่าน printenv
    • SSH key: ไฟล์คีย์หลักและไฟล์ตั้งค่าใน ~/.ssh/
    • ข้อมูลรับรอง Git: ~/.gitconfig, ~/.git-credentials
    • ข้อมูลรับรองคลาวด์: ไฟล์ตั้งค่าและโทเคนที่เกี่ยวข้องกับ AWS, GCP, Azure
    • การตั้งค่า Kubernetes: /etc/kubernetes/, ~/.kube/config เป็นต้น
    • การตั้งค่า Docker: ~/.docker/config.json เป็นต้น
    • การตั้งค่าตัวจัดการแพ็กเกจ: .npmrc, .netrc, .vault-token เป็นต้น
    • ประวัติ shell: .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: ค้นหา URL ของ Slack, Discord เป็นต้น
  • ขั้นตอนที่ 2: เข้ารหัสและส่งออกไปภายนอก

    • บันทึกข้อมูลที่รวบรวมไว้ลงไฟล์ชั่วคราว
    • สร้าง AES-256 session key ขนาด 32 ไบต์ ด้วย openssl rand
    • เข้ารหัสข้อมูลด้วย openssl enc -aes-256-cbc -pbkdf2
    • session key จะถูกเข้ารหัสด้วย กุญแจสาธารณะ RSA 4096 บิต ที่ฝังไว้แบบฮาร์ดโค้ด
    • รวมสองไฟล์เป็น tpcp.tar.gz แล้วส่งออก
    • ปลายทางการส่ง: https://models.litellm.cloud/ (ต่างจากโดเมนทางการ litellm.ai)
  • รายละเอียดทางเทคนิค

    • ไฟล์ .pth อยู่ใน site-packages/ ของ Python และ รันอัตโนมัติเมื่อ interpreter เริ่มต้น
    • payload ถูกซ่อนด้วย base64 สองชั้น เพื่อหลบเลี่ยงการตรวจจับ
    • ผู้โจมตีใช้โดเมน litellm.cloud ในการรัน เซิร์ฟเวอร์ขโมยข้อมูล
    • ส่วนต้นของกุญแจสาธารณะ RSA: MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvahaZDo8mucujrT15ry+...
  • ขอบเขตผลกระทบ

    • เมื่อติดตั้ง litellm==1.82.8 ความลับทั้งหมด เช่น ตัวแปรสภาพแวดล้อม, SSH key, ข้อมูลรับรองคลาวด์ อาจรั่วไหล
    • เป้าหมายที่ได้รับผลกระทบ:
    • สภาพแวดล้อมพัฒนาในเครื่อง
    • ไปป์ไลน์ CI/CD
    • Docker container
    • production server
    • นอกจากนี้ยังมีรายงานเพิ่มเติมว่า เวอร์ชัน 1.82.7 ก็มีโค้ดอันตรายใน proxy/proxy_server.py
  • มาตรการที่แนะนำ

      1. PyPI: ลบหรือ yank litellm 1.82.8 ออกจากระบบทันที
      1. ผู้ใช้:
    • ตรวจสอบว่ามี litellm_init.pth อยู่ใน site-packages/ หรือไม่
    • หมุนเวียน (rotate) ข้อมูลรับรองทั้งหมด ของระบบที่ติดตั้งเวอร์ชันดังกล่าว
      1. BerriAI: ควร ตรวจสอบความปลอดภัยของข้อมูลรับรองที่ใช้เผยแพร่บน PyPI และของไปป์ไลน์ CI/CD
  • สภาพแวดล้อมที่ค้นพบ

    • OS: Ubuntu 24.04 (Docker container)
    • Python: 3.13
    • เส้นทางการติดตั้ง: PyPI
    • เวลาที่พบ: 24 มีนาคม 2026
  • ปฏิกิริยาจากชุมชนและประเด็นถกเถียงเพิ่มเติม

    • นักพัฒนาหลายคนระบุว่า “อาจมีผู้ใช้หลายพันรายติดเชื้อไปแล้ว
    • ผู้ใช้บางรายยืนยันว่า เวอร์ชัน 1.82.7 ก็ติดเชื้อเช่นกัน
    • ผู้เชี่ยวชาญด้านความปลอดภัยเน้นย้ำถึงความจำเป็นของ การ pin dependency และ การเสริมความมั่นคงปลอดภัยของซัพพลายเชน
    • agnosticlines เป็นต้น ชี้ให้เห็นถึง ช่องโหว่ของ GitHub Actions และ การเกิดซ้ำของการโจมตีซัพพลายเชน
    • MountainGod2 เตือนว่า “ควร pin dependency ด้วย commit hash และใช้รีลีสใหม่หลังจากตรวจสอบแล้วเท่านั้น
    • หลายโปรเจกต์ เช่น mlflow, home-assistant, morphik-core ได้ดำเนินการ ตรึงเวอร์ชันหรือถอด litellm ออก

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น