- มีการรวมไฟล์
.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
-
มาตรการที่แนะนำ
-
- PyPI: ลบหรือ yank
litellm 1.82.8 ออกจากระบบทันที
-
- ผู้ใช้:
- ตรวจสอบว่ามี
litellm_init.pth อยู่ใน site-packages/ หรือไม่
- หมุนเวียน (rotate) ข้อมูลรับรองทั้งหมด ของระบบที่ติดตั้งเวอร์ชันดังกล่าว
-
- 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 ออก
ยังไม่มีความคิดเห็น