Zafran Labs ค้นพบช่องโหว่ความรุนแรงสูง 2 รายการ (ChainLeak – CVE-2026-22218 และ CVE-2026-22219) ใน Chainlit ซึ่งเป็น Open-source framework ยอดนิยมสำหรับสร้างแอปพลิเคชัน AI แบบสนทนา ช่องโหว่เหล่านี้อนุญาตให้แฮกเกอร์อ่านไฟล์ใดๆ บนเซิร์ฟเวอร์และทำให้ข้อมูลสำคัญรั่วไหล ซึ่งอาจนำไปสู่การเจาะระบบคลาวด์ได้อย่างสมบูรณ์ ช่องโหว่ได้รับการแก้ไขแล้วใน Chainlit เวอร์ชัน 2.9.4 และแนะนำให้อัปเดตโดยเร็วที่สุด
Severity: สูง
System Impact:
- แอปพลิเคชัน AI แบบสนทนาที่สร้างด้วย Chainlit
- ระบบ AI ที่เปิดสู่สาธารณะ (internet-facing AI systems) ที่ใช้ Chainlit
- สภาพแวดล้อมคลาวด์
- การปรับใช้ Chainlit ที่ใช้เลเยอร์ข้อมูล SQLAlchemy
Technical Attack Steps:
- **การอ่านไฟล์โดยพลการ (CVE-2026-22218):** แฮกเกอร์สามารถใช้ endpoint `/project/element` โดยส่ง custom element ที่มีฟิลด์ ‘path’ ที่ถูกควบคุม ทำให้ Chainlit คัดลอกไฟล์จากตำแหน่งนั้นไปยังเซสชันของแฮกเกอร์โดยไม่มีการตรวจสอบความถูกต้อง
- **การปลอมแปลงคำขอฝั่งเซิร์ฟเวอร์ (SSRF – CVE-2026-22219):** ในการปรับใช้ Chainlit ที่ใช้ SQLAlchemy แฮกเกอร์สามารถตั้งค่าฟิลด์ ‘url’ ของ custom element เพื่อบังคับให้เซิร์ฟเวอร์ดึง URL ภายนอกผ่านคำขอ GET และจัดเก็บการตอบกลับ
- **การเข้าถึงข้อมูลภายในและการเจาะระบบ:** แฮกเกอร์สามารถดึงข้อมูลที่ถูกดึงมาได้ผ่าน endpoint การดาวน์โหลด element ซึ่งทำให้สามารถเข้าถึงบริการ REST ภายในและสแกน IP และบริการภายในได้
- **การยกระดับสู่การเจาะระบบคลาวด์:** ช่องโหว่ทั้งสองสามารถรวมเข้าด้วยกันเพื่อทำการเจาะระบบอย่างสมบูรณ์และการเคลื่อนที่ในแนวนอนในสภาพแวดล้อมคลาวด์
Recommendations:
Short Term:
- อัปเกรด Chainlit เป็นเวอร์ชัน 2.9.4 หรือใหม่กว่าทันที (เวอร์ชันล่าสุดคือ 2.9.6) เพื่อแก้ไขช่องโหว่เหล่านี้
Long Term:
- ตรวจสอบและอัปเดตไลบรารีและเฟรมเวิร์กโอเพนซอร์สทั้งหมดที่ใช้งานอย่างสม่ำเสมอ
- Implement การตรวจสอบความถูกต้องของอินพุต (input validation) ที่เข้มงวดเพื่อป้องกันการโจมตีแบบ Arbitrary File Read และ SSRF
- ใช้หลักการเข้าถึงแบบสิทธิ์น้อยที่สุด (least privilege) สำหรับแอปพลิเคชันและบริการ
- จำกัดสิทธิ์การเข้าถึงไฟล์และเครือข่ายสำหรับแอปพลิเคชัน AI ในสภาพแวดล้อมการทำงานจริง
Share this content: