ข้ามไปเนื้อหาหลัก

LiteLLM 1.107.0 โดนฝังมัลแวร์ เหตุลืมเพิกถอนคีย์แอดมิน

เผยเบื้องหลังมัลแวร์ใน LiteLLM 1.107.0 บน PyPI และ Docker หลังทำไฟล์ config หลุดเมื่อ 27 พ.ค. 2026 ก่อนถูกลบแต่ลืมยกเลิกคีย์ ส่งผลมียอดดาวน์โหลดร่วม 4.9 หมื่นครั้ง

เรียบเรียงโดย AI
Inewgen
04 Nov 2026ที่มา: Dev.to3 นาทีอ่าน (0 ครั้ง)
แชร์
LiteLLM 1.107.0 โดนฝังมัลแวร์ เหตุลืมเพิกถอนคีย์แอดมิน

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • LiteLLM 1.107.0 บน PyPI และ Docker โดนฝังมัลแวร์ขโมยข้อมูลรับรอง
  • ต้นเหตุจากคีย์แอดมินในไฟล์ config ที่ถูกลบไปในเดือนพฤษภาคมแต่ไม่ได้ถูกเพิกถอน
  • แฮกเกอร์ใช้สิทธิ์คีย์ดังกล่าวเข้าควบคุมองค์กร GitHub และแทรกโค้ดอันตราย
  • ยอดดาวน์โหลดเวอร์ชันที่มีปัญหาพุ่งสูงถึงประมาณ 49,000 ครั้งในช่วงเวลา 2 ชั่วโมง

เหตุการณ์ความปลอดภัยไซเบอร์ครั้งสำคัญนี้เริ่มต้นขึ้นเมื่อวันที่ 27 พฤษภาคม 2026 เวลา 18:53 น. ตามเวลา UTC เมื่อมีไฟล์ชื่อ opencode.json ถูกอัปโหลดขึ้นไปยังไลบรารีสาธารณะ LiteLLM-Labs/lite-harness โดยภายในไฟล์ดังกล่าวมีกุญแจผู้ดูแลระบบสำหรับระบบภายในของ LiteLLM Agent Platform ซ่อนอยู่ แต่หลังจากนั้นเพียงประมาณสามชั่วโมง มีการคอมมิตโค้ดตามมาเพื่อลบไฟล์ดังกล่าวออกไป ทว่าไม่มีใครดำเนินการเพิกถอนกุญแจแอดมินดอกนั้นตามขั้นตอนที่ควรจะเป็น

ต่อมาในวันที่ 21 ตุลาคม กุญแจดอกเดิมที่ถูกหลงลืมไปกลับกลายเป็นจุดเริ่มต้นของห่วงโซ่การโจมตีที่จบลงด้วยการปล่อยซอฟต์แวร์รุ่น litellm==1.107.0 ที่ปนเปื้อนมัลแวร์ขึ้นสู่ PyPI รวมถึงแท็ก Docker ล่าสุดที่ชี้ไปยังอิมเมจที่ถูกเจาะระบบ โดยอ้างอิงข้อมูลจากรายงานสรุปเหตุการณ์ของ LiteLLM และการประเมินยอดดาวน์โหลดจาก Wiz พบว่าอาร์ติแฟกต์ที่ถูกบุกรุกเหล่านี้ออนไลน์อยู่เป็นเวลาประมาณสองชั่วโมง

49,000ยอดดาวน์โหลดเวอร์ชันอันตราย
2 ชม.ระยะเวลาที่อาร์ติแฟกต์ออนไลน์

รายงานระบุว่าการปล่อยอัปเดตดังกล่าวมีคอมไพล์มัลแวร์ที่ทำหน้าที่ขโมยข้อมูลรับรองและโหลดเครื่องมือประมวลผลโค้ดระยะไกล ขณะที่แท็กซอร์สโค้ดทางการ v1.107.0 บน GitHub ไม่เคยมีไฟล์อันตรายเหล่านี้รวมอยู่เลย ด้าน Wiz ได้อ้างอิงข้อมูลจาก ClickPy โดยประเมินว่ายอดดาวน์โหลดของเวอร์ชัน 1.107.0 ในช่วงเวลานั้นอยู่ที่ราวๆ 49,000 ครั้ง

บทเรียนสำคัญจากกรณีนี้คือ การลบไฟล์ที่ซ่อนความลับออกไปไม่ได้เป็นการยกเลิกสิทธิ์ของคีย์นั้นๆ เนื่องจากการคอมมิตเพื่อลบไฟล์จะสร้างสถาปัตยกรรมสแนปชอตใหม่ขึ้นมา แต่สแนปชอตเก่าที่ยังมีคีย์ดังกล่าวฝังอยู่ยังคงเข้าถึงได้ผ่านแฮชจากทุกโคลนและฟอร์กที่ถูกสร้างขึ้นในช่วงเวลานั้น คู่มือของ GitHub ระบุชัดเจนว่าขั้นตอนแรกสุดที่ต้องทำคือการเพิกถอนหรือหมุนเวียนเปลี่ยนความลับ (revoke/rotate) มิฉะนั้นประวัติสาธารณะจะยังคงเก็บคีย์ที่ใช้งานได้จริงเอาไว้ ซึ่งคีย์ของ LiteLLM ดอกนี้ยังคงใช้งานได้นานกว่าสี่เดือน

git terminal code command line workspace

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

"Secret scanning must open tickets automatically, and the ticket is only closed when revocation is confirmed"

LiteLLM

นอกจากนี้ การใช้เครื่องมือโค้ดดิ้งเอเจนต์ (Coding Agents) อาจทำให้รูปแบบความผิดพลาดนี้สังเกตเห็นได้ยากขึ้น เนื่องจากเอเจนต์อาจเพิ่มไฟล์กำหนดค่าในรอบหนึ่งแล้วลบออกในรอบถัดไป ทำให้ส่วนต่างสุดท้ายในพูลรีเควสต์หักล้างกันพอดี ผู้ตรวจสอบที่อ่านแค่ผลต่างนั้นจึงมองไม่เห็นคีย์ที่ซ่อนอยู่ ทางออกในการตรวจสอบประวัติด้วย Git จึงต้องอาศัยคำสั่งเช่น git log แบบต่างๆ เพื่อค้นหาสตริงคีย์และตัวกรองไฟล์ที่ถูกลบออกไปจากทรีปัจจุบัน

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

เหตุการณ์นี้สะท้อนให้เห็นช่องโหว่สำคัญในการพัฒนาซอฟต์แวร์ยุคใหม่ที่พึ่งพาเครื่องมืออัตโนมัติและเอเจนต์ เมื่อสิทธิ์ระดับแอดมินหรือเจ้าขององค์กรหลุดรอดไปถึงมือผู้ไม่หวังดี ระบบตรวจสอบความปลอดภัยในไปป์ไลน์ CI/CD ทั่วไปจึงไม่สามารถป้องกันได้เต็มที่ เพราะผู้โจมตีถือสิทธิ์สูงสุดในฐานะเจ้าของระบบเอง การจำกัดสิทธิ์โทเค็นและการตั้งค่าระบบสแกนความลับแบบอัตโนมัติที่ต้องยืนยันการเพิกถอนจึงเป็นมาตรการป้องกันที่ขาดไม่ได้

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้