LiteLLM 1.107.0 บน PyPI ถูกฝังมัลแวร์ขโมยข้อมูลรับรอง รันทุกครั้งที่ Python เริ่มทำงาน
SafeDep รายงานว่า LiteLLM 1.107.0 บน PyPI ถูกฝังมัลแวร์ที่รันทุกครั้งที่ Python เริ่มทำงาน และขโมยข้อมูลรับรองได้ 16 ประเภท สาเหตุที่ SafeDep อนุมานคือ release pipeline ที่ถูกเจาะหรือข้อมูลรับรอง PyPI ที่ถูกขโมย
Key takeaway
- SafeDep ระบุว่า LiteLLM 1.107.0 บน PyPI ได้รับผลกระทบทั้งเจ็ด wheel และ sdist ส่วน 1.106.2, 1.107.0rc1 และ 1.107.0rc2 เป็นเวอร์ชันที่ไม่พบปัญหา โดยมีการวางไฟล์ cook.pth, cook.py ขนาดราว 61 KB และ sitecustomize.py ใน site-packages
- ไฟล์ดังกล่าวทำงานเมื่อ Python process ใดเริ่มต้นบนเครื่องแม้ไม่ได้ import litellm ตัวขโมยเก็บข้อมูล 16 ประเภทรวมถึง SSH key และข้อมูลรับรอง cloud แล้วเข้ารหัสด้วย AES-256-CBC ก่อนส่งออก ส่วน backdoor ดาวน์โหลดและรันโค้ดจากเซิร์ฟเวอร์ทุกชั่วโมง
- สาเหตุที่ SafeDep อนุมานคือ release pipeline ที่ถูกเจาะหรือข้อมูลรับรอง PyPI ที่ถูกขโมย เนื่องจาก upstream tag v1.107.0 ไม่มีบรรทัด data = “cook” แต่แหล่งข้อมูลนี้ยังไม่มีการยืนยันจากผู้ดูแล LiteLLM และไม่ระบุจำนวนผู้ได้รับผลกระทบ
SafeDep โดย Kunal Singh เผยแพร่การวิเคราะห์เมื่อวันที่ 21 ตุลาคม 2026 ว่า LiteLLM เวอร์ชัน 1.107.0 บน PyPI ถูกฝังโค้ดอันตราย ทั้ง wheel ทั้งเจ็ดไฟล์ที่ครอบคลุม Linux, macOS และ Windows รวมถึง sdist ได้รับผลกระทบ ขณะที่เวอร์ชัน 1.106.2, 1.107.0rc1 และ 1.107.0rc2 ระบุว่าไม่มีปัญหา
ไฟล์ cook.pth, cook.py และ sitecustomize.py ทำให้มัลแวร์ทำงานทุกครั้งที่ Python เริ่มต้นได้อย่างไร?
แพ็กเกจที่ติดตั้งจะวางไฟล์ cook.pth, cook.py ซึ่งเป็นโค้ด Python ขนาดราว 61 KB และ sitecustomize.py ลงใน site-packages ตามที่ SafeDep ระบุ ไฟล์เหล่านี้ทำงานเมื่อมี Python process เริ่มต้นบนเครื่อง แม้ process นั้นจะไม่เคย import litellm เลยก็ตาม
SafeDep พบบรรทัด data = “cook” ใน pyproject.toml ของ sdist ที่ไม่มีใน upstream tag v1.107.0
SafeDep พบว่า pyproject.toml ใน sdist มีบรรทัดที่ถูกแทรกคือ data = “cook” แต่ upstream tag v1.107.0 ไม่มีบรรทัดนี้ SafeDep อนุมานว่าสาเหตุน่าจะมาจาก release pipeline ที่ถูกเจาะ หรือข้อมูลรับรอง PyPI ที่ถูกขโมย
มัลแวร์ขโมยข้อมูล 16 ประเภทอะไรบ้าง และ backdoor ดาวน์โหลดโค้ดจากเซิร์ฟเวอร์อย่างไร?
ตัวขโมยข้อมูลเก็บข้อมูล 16 ประเภท เช่น SSH key, ข้อมูลรับรองของ cloud และ CI/CD, รหัสผ่านในเบราว์เซอร์, token ของเครื่องมือ AI และ key ของฐานข้อมูล LiteLLM proxy จากนั้นเข้ารหัสด้วย AES-256-CBC โดยห่อคีย์ด้วย RSA-OAEP แล้วส่ง POST ไปยังเส้นทาง /healthcheck ของโดเมนที่หน้าตาคล้าย litellm ส่วน backdoor ทำงานเป็นลูปทุกชั่วโมง อ่านโดเมนเซิร์ฟเวอร์จากไฟล์บน GitHub แล้วดาวน์โหลดและรันโค้ดจากเซิร์ฟเวอร์นั้น
SafeDep เผยแพร่ข้อมูลใดสำหรับตรวจสอบและแก้ไขเครื่องที่อาจได้รับผลกระทบ?
บทความรวบรวม network IOC, host artifact เช่น lock file ในไดเรกทอรี /tmp และค่า SHA-256 hash สำหรับใช้ตรวจสอบและแก้ไข ผู้อ่านที่ต้องการรายละเอียดควรดูรายการเหล่านี้จากต้นฉบับของ SafeDep โดยตรง
ข้อควรทราบ: ข้อมูลทั้งหมดมาจากการวิเคราะห์ของ SafeDep ซึ่งเป็นผู้ให้บริการด้านความปลอดภัยเพียงรายเดียว สาเหตุของเหตุการณ์เป็นการอนุมาน และแหล่งข้อมูลนี้ยังไม่มีการยืนยันจากผู้ดูแล LiteLLM รวมทั้งไม่ระบุจำนวนผู้ได้รับผลกระทบ
Why it matters
💡 เหตุการณ์นี้แสดงให้เห็นว่าแพ็กเกจในระบบนิเวศ AI ที่ถูกใช้เป็นโครงสร้างพื้นฐาน เช่น เกตเวย์โมเดล สามารถกลายเป็นช่องทางขโมยข้อมูลรับรองสำคัญขององค์กร อย่างคีย์ cloud และ CI/CD ได้ เมื่อโค้ดอันตรายรันตั้งแต่ Python เริ่มทำงาน ขอบเขตของผลกระทบจึงไม่จำกัดอยู่ที่โปรแกรมที่เรียกใช้ไลบรารีโดยตรง สิ่งที่ควรจับตาคือการยืนยันสาเหตุจากผู้ดูแล LiteLLM และจำนวนผู้ได้รับผลกระทบ ทั้งนี้ข้อมูลปัจจุบันมาจากการวิเคราะห์ของ SafeDep รายเดียว
ข้อมูลอ้างอิงจาก https://safedep.io/litellm-pypi-compromise-credential-stealer-backdoor/