ยืนยันการทำซ้ำช่องโหว่ Memory Leak ของ Ollama ได้แล้ว: CVE-2026-7482 ระดับความรุนแรงสูง

🚨 ยืนยันการทำซ้ำช่องโหว่ Memory Leak ของ Ollama ได้แล้ว: CVE-2026-7482 ความเสี่ยงระดับสูง
นักวิจัยด้านความปลอดภัยได้ทำซ้ำสำเร็จช่องโหว่ Memory Leak ของ Ollama (CVE-2026-7482) ซึ่งเป็นheap out-of-bounds readช่องโหว่:
- เวอร์ชันที่ได้รับผลกระทบ: Ollama ทุกเวอร์ชันก่อน 0.17.1
- ประเภทของช่องโหว่: การอ่านนอกขอบเขตแบบ Heap (CWE-125)
- เส้นทางการโจมตี: /api/create → โหลด GGUF → quantization → memory leak → ดึงข้อมูลออกทาง /api/push
- ข้อมูลที่รั่วไหล: ตัวแปรสภาพแวดล้อม, API Keys, system prompt, บทสนทนาของผู้ใช้
- ไม่มีการยืนยันตัวตน: endpoint /api/create และ /api/push ไม่มีการยืนยันตัวตน
🎯 แก่นของช่องโหว่
ช่องโหว่ GGUF Model Loader
ช่องโหว่อยู่ที่GGUF model loader:
- /api/createendpoint ยอมรับไฟล์ GGUF ที่ผู้โจมตีจัดเตรียมไว้
- tensor offset และ sizeมากกว่าความยาวจริงของไฟล์
- กระบวนการ quantizationอ่านข้อมูลเกินบัฟเฟอร์ heap ที่จัดสรรไว้
- ตำแหน่ง: fs/ggml/gguf.go และ server/quantization.go (WriteTo())
เนื้อหาที่รั่วไหลจากหน่วยความจำ
เนื้อหาในหน่วยความจำที่รั่วไหลอาจประกอบด้วย:
| ข้อมูลที่รั่วไหล | ความเสี่ยง |
|---|---|
| ตัวแปรสภาพแวดล้อม | อาจมีการกำหนดค่าที่ละเอียดอ่อน |
| API Keys | สูง: เปิดเผยคีย์ API |
| system prompt | เปิดเผยการกำหนดค่าภายใน |
| ข้อมูลบทสนทนาของผู้ใช้ที่ใช้งานพร้อมกัน | สูง: การรั่วไหลของข้อมูลส่วนบุคคล |
ช่องทางการดึงข้อมูลออกภายนอก
เนื้อหาในหน่วยความจำที่รั่วไหลสามารถดึงออกได้ผ่าน/api/pushendpoint:
- อัปโหลดโมเดล: อัปโหลด artifact ของโมเดลผลลัพธ์
- registry ของผู้โจมตี: อัปโหลดไปยัง registry ที่ผู้โจมตีควบคุม
- ไม่มีการยืนยันตัวตน: endpoint ในสายการเผยแพร่ต้นทางไม่มีการยืนยันตัวตน
⚠️ ระดับความเสี่ยง
คะแนน CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N/AU:Y/R:A/V:D/RE:L/U:Red
| มิติ | คะแนน | คำอธิบาย |
|---|---|---|
| เวกเตอร์การโจมตี | เครือข่าย (AV:N) | โจมตีผ่านเครือข่ายได้ |
| ความซับซ้อนของการโจมตี | ต่ำ (AC:L) | โจมตีง่าย |
| สิทธิ์ที่ต้องการ | ไม่ต้องมี (PR:N) | ไม่ต้องยืนยันตัวตน |
| การโต้ตอบของผู้ใช้ | ไม่ต้องมี (UI:N) | ไม่ต้องมีการโต้ตอบของผู้ใช้ |
| ผลกระทบต่อความลับ | สูง (VC:H) | ผลกระทบต่อความลับระดับสูง |
| ผลกระทบต่อความพร้อมใช้งาน | สูง (VA:H) | ผลกระทบต่อความพร้อมใช้งานระดับสูง |
📊 การติดตั้งที่ได้รับผลกระทบ
การกำหนดค่าเริ่มต้น
โดยค่าเริ่มต้น Ollama ผูกไว้ที่127.0.0.1แต่OLLAMA_HOST=0.0.0.0เป็นการกำหนดค่าที่ถูกใช้กันอย่างแพร่หลาย:
- การผูกค่าเริ่มต้น: 127.0.0.1 (ภายในเครื่อง)
- เปิดเผยสู่สาธารณะ: OLLAMA_HOST=0.0.0.0 (ใช้กันแพร่หลาย)
- การเปิดเผยจำนวนมาก: พบการเปิดเผยสู่อินเทอร์เน็ตสาธารณะจำนวนมาก
สถานการณ์เสี่ยงสูง
| สถานการณ์ | ความเสี่ยง |
|---|---|
| Ollama ที่เปิดเผยสู่อินเทอร์เน็ตสาธารณะ | สูงมาก: โจมตีได้โดยตรง |
| Ollama ที่ใช้ร่วมกันหลายผู้ใช้ | สูง: อาจรั่วไหลบทสนทนาของผู้ใช้รายอื่น |
| มี API Keys ที่ละเอียดอ่อน | สูง: API Keys รั่วไหล |
| การติดตั้งในเครื่อง | ปานกลาง: ต้องเข้าถึงจากภายในเครื่อง |
🔧 มาตรการบรรเทาผลกระทบ
แนวทางที่ 1: อัปเกรดเป็น 0.17.1 ขึ้นไป (แนะนำ)
# 升级 Ollama # macOS brew upgrade ollama # Linux curl -fsSL https://ollama.com/install.sh | sh
เนื้อหาการแก้ไข: แพตช์แก้ไขปัญหาการอ่านนอกขอบเขตของ GGUF loader แล้ว
แนวทางที่ 2: จำกัดการเปิดเผยบนเครือข่าย
# 不要使用 0.0.0.0 绑定 # 保持默认 127.0.0.1 OLLAMA_HOST=127.0.0.1
แนวทางที่ 3: จำกัดด้วยไฟร์วอลล์
# 限制 /api/create 和 /api/push 端点访问 # 只允许可信来源
แนวทางที่ 4: เฝ้าระวังไฟล์ GGUF ที่ผิดปกติ
- ตรวจสอบไฟล์ GGUF: ว่า tensor offset และ size สมเหตุสมผลหรือไม่
- เฝ้าระวัง /api/create: บันทึกแหล่งที่มาของไฟล์ GGUF ที่ถูกอัปโหลด
- เฝ้าระวัง /api/push: บันทึก registry ปลายทางที่อัปโหลดไป
🚀 สถานะการทำซ้ำ
ทำซ้ำสำเร็จแล้ว: นักวิจัยด้านความปลอดภัยทำซ้ำช่องโหว่นี้สำเร็จแล้ว:
- เงื่อนไขการทำซ้ำ: Ollama < 0.17.1
- เส้นทางการโจมตี: อัปโหลด GGUF ที่เป็นอันตราย → กระตุ้น quantization → memory leak
- การพิสูจน์การรั่วไหล: รั่วไหลตัวแปรสภาพแวดล้อมและข้อมูลบทสนทนาได้สำเร็จ
- การพิสูจน์การดึงข้อมูลออก: ดึงข้อมูลออกผ่าน /api/push ได้สำเร็จ
📅 ข้อมูลแพตช์
| ข้อมูล | ลิงก์ |
|---|---|
| เวอร์ชันที่แก้ไข | v0.17.1 |
| คอมมิตแพตช์ | 88d57d0483 |
| PR | #14406 |
📝 สรุป
ช่องโหว่ Memory Leak ของ Ollama CVE-2026-7482ทำซ้ำสำเร็จแล้ว:
- กระทบ Ollama ทุกเวอร์ชันก่อน 0.17.1
- การอ่านนอกขอบเขตแบบ Heap, CWE-125
- รั่วไหล: ตัวแปรสภาพแวดล้อม, API Keys, system prompt, บทสนทนาของผู้ใช้
- ช่องทางดึงข้อมูลออก: อัปโหลดผ่าน /api/push ไปยัง registry ของผู้โจมตี
- endpoint ที่ไม่มีการยืนยันตัวตน: /api/create และ /api/push
- ความเสี่ยงจากการเปิดเผยสู่อินเทอร์เน็ตสาธารณะ: OLLAMA_HOST=0.0.0.0 ถูกใช้กันแพร่หลาย
- การบรรเทา: อัปเกรดเป็น 0.17.1 ขึ้นไป หรือจำกัดการเปิดเผยบนเครือข่าย
ช่องโหว่ระดับสูงที่ทำซ้ำสำเร็จแล้ว ควรอัปเกรดหรือจำกัดการเปิดเผยทันที
NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-7482
เวอร์ชันที่แก้ไข:https://github.com/ollama/ollama/releases/tag/v0.17.1