MongoDB C Driver และ libmongocrypt แก้ 2 CVE: Kerberos บน Windows และคำขอ KMS
MongoDB ออก C Driver 1.30.14/2.5.7 และ libmongocrypt 1.21.1 วันที่ 22 ต.ค. 2026 แก้ CVE-2026-114645 และ CVE-2026-114655 ซึ่งมีเงื่อนไขกระทบต่างกัน
MongoDB C Driver และ libmongocrypt ออกแพตช์ 2 CVE: ตรวจ Windows Kerberos กับการเรียก KMS
วันที่ 22 ตุลาคม 2026 MongoDB เผยแพร่แพตช์ให้สององค์ประกอบที่อยู่คนละชั้นของระบบไคลเอนต์ฐานข้อมูล: C Driver รุ่น 1.30.14 และ 2.5.7 กับ libmongocrypt 1.21.1 ระเบียน CVE-2026-114645 และ CVE-2026-114655 เผยแพร่ครั้งแรกเวลาประมาณ 19:13 UTC วันเดียวกัน นี่เป็นคนละปัญหากับชุด 11 CVE ของ MongoDB .NET/C# Driver 3.13.0 ที่รายงานแยกไว้ ผู้ดูแลต้องตรวจว่าแอปหรือเครื่องมือของตนใช้ไลบรารีใดจริงก่อนเลือกแพตช์
สำหรับเวลาเผยแพร่แพตช์จากต้นทาง GitHub ระบุ libmongocrypt 1.21.1 เวลา 10:27 UTC, C Driver 1.30.14 เวลา 11:55 UTC และ C Driver 2.5.7 เวลา 12:11 UTC ของวันที่ 22 ตุลาคม ข้อมูลนี้ช่วยแยกวันออกแพตช์ออกจากวันเผยแพร่ระเบียน CVE ซึ่งมาทีหลังหลายชั่วโมง การมีเลข CVE ใหม่อย่างเดียวไม่ใช่หลักฐานว่าช่องโหว่เพิ่งเกิดหรือเพิ่งแก้; รอบนี้มีรีลีสของผู้พัฒนาที่ออกในวันเดียวกันรองรับ
CVE-2026-114645: บัฟเฟอร์ล้นใน C Driver เมื่อใช้ Kerberos ฝั่ง Windows
ระเบียน CVE ระบุปัญหา integer wraparound 32 บิตในโค้ดการยืนยันตัวตน Kerberos/SSPI เฉพาะบิลด์ C Driver ที่ใช้กลไกยืนยันตัวตนของ Windows ถ้าค่า credential ในการตั้งค่าการเชื่อมต่อยาวผิดปกติมาก การคำนวณขนาดอาจวนกลับและจองบัฟเฟอร์เล็กกว่าที่ต้องใช้ จากนั้นการประกอบข้อความยืนยันตัวตนอาจเขียนเกินขอบเขตบัฟเฟอร์ ผลที่ระบุคือความเสียหายของหน่วยความจำในโปรเซสไคลเอนต์และการปฏิเสธการให้บริการของแอปที่ใช้ไดรเวอร์ ไม่ควรสรุปว่าเป็นการยึด MongoDB Server หรือเป็นการรันโค้ดจากเครือข่ายได้โดยอัตโนมัติ
เงื่อนไขสำคัญคือผู้โจมตีต้องควบคุม ค่าตั้งต้นการเชื่อมต่อฝั่งไคลเอนต์ ที่ส่งเป็น credential ได้ และแอปต้องใช้เส้นทาง Kerberos/SSPI บน Windows หากบริการกำหนด connection string คงที่จากคอนฟิกที่ดูแลเอง ความเสี่ยงต่างจากแพลตฟอร์มที่ให้ลูกค้าหรือ tenant ส่ง connection URI ของตนเข้ามาเพื่อสร้างไคลเอนต์ใหม่ ควรตรวจทั้ง UI, API, job configuration และ secret store ว่ามีจุดใดรับ URI หรือ username ที่บุคคลภายนอกแก้ได้
ระเบียน CVE ระบุช่วงที่ได้รับผลกระทบเป็น C Driver ตั้งแต่ 1.6.0 ถึงก่อน 1.30.14 และสาย 2.0.0 ถึงก่อน 2.5.7 รุ่นแก้จึงเป็น 1.30.14 หรือ 2.5.7 ตามสายที่ใช้อยู่ หน้า release notes ของ 1.30.14 ระบุว่าแก้การจัดการ username ขนาดใหญ่สำหรับ GSSAPI บน Windows ส่วน 2.5.7 เป็นแพตช์ของสายรุ่นใหม่กว่า ทีมที่ฝังไลบรารี C ผ่านภาษาอื่นควรตรวจเวอร์ชัน libmongoc ที่แพ็กมาจริง ไม่ดูเพียงเวอร์ชันของแอปชั้นบน
CVE-2026-114655: ค่าใน key vault อาจเปลี่ยนโครงสร้างคำขอไปยัง KMS
libmongocrypt เป็นไลบรารีที่ช่วยงานเข้ารหัสฝั่งไคลเอนต์และสื่อสารกับบริการจัดการกุญแจ ระเบียน CVE อธิบายว่าค่าจาก key vault document, การตั้งค่า KMS provider และการตอบกลับจาก KMS ถูกแทรกลงใน request line, header หรือ body ที่มีลายเซ็นโดยไม่ตรวจหรือเข้ารหัสให้เหมาะกับบริบท ผู้ที่มีสิทธิ์เขียน key vault collection อาจใส่ค่าที่เปลี่ยนโครงสร้างคำขอไปยัง AWS, Azure หรือ GCP KMS รวมถึงเพิ่มสมาชิกใน body หรือ token claim ที่ไลบรารีลงลายเซ็นด้วยสิทธิ์ของแอปได้
ขอบเขตนี้ต้องอ่านให้แม่น: ผู้โจมตีไม่ได้เข้าถึง KMS ได้จากอินเทอร์เน็ตเพียงเพราะรู้เลข CVE แต่ต้องมีทางแก้ข้อมูล key vault หรือค่าที่ไหลเข้าตัวสร้างคำขอ KMS ความเสียหายที่เป็นไปได้ขึ้นกับสิทธิ์ KMS ที่แอปถือและชนิดคำขอที่ประกอบขึ้น หากระบบเปิดสิทธิ์เขียน key vault ให้หลายบริการหรือ tenant ควรทบทวนว่าแต่ละ principal จำเป็นต้องเขียน collection นี้จริงหรือไม่ และตรวจ audit log สำหรับการเปลี่ยนค่า key vault ที่ผิดปกติ
ระเบียน CVE ระบุ libmongocrypt ตั้งแต่ 1.0.0 ถึงก่อน 1.21.1 เป็นช่วงที่กระทบ รีลีส 1.21.1 ระบุการตรวจอินพุตก่อนนำไปแทรกใน KMS HTTP request แอปที่ใช้ client-side field-level encryption หรือ Queryable Encryption ควรเช็กเวอร์ชัน libmongocrypt ที่มากับไดรเวอร์ของภาษาโปรแกรมตนด้วย เพราะอาจไม่ได้ติดตั้งแพ็กเกจนี้แยกให้เห็นชัดในรายการ dependency ระดับแอป
วิธีตรวจและอัปเกรดโดยไม่มองข้ามผลข้างเคียง
- ทำบัญชีเวอร์ชันไลบรารีจริงใน binary หรือ container ที่รันอยู่ แยก
libmongoc/MongoDB C Driver ออกจากlibmongocryptและ .NET/C# Driver อย่าสันนิษฐานว่าการอัปเกรดส่วนหนึ่งจะอัปเกรดทุกส่วน - สำหรับ CVE-2026-114645 ตรวจว่ามีบิลด์ Windows และใช้ Kerberos/SSPI หรือไม่ แล้วไล่เส้นทางที่ผู้ใช้ปรับ connection URI หรือ credential ได้ อัปเกรดสาย 1.x เป็นอย่างน้อย 1.30.14 หรือสาย 2.x เป็นอย่างน้อย 2.5.7 และทดสอบการเชื่อมต่อจริงกับระบบยืนยันตัวตนที่ใช้อยู่
- สำหรับ CVE-2026-114655 ตรวจนโยบายสิทธิ์ key vault collection และการตั้งค่า KMS provider อัปเกรด libmongocrypt เป็น 1.21.1 หรือใหม่กว่า ทดสอบการสร้างและใช้ data key กับ KMS ที่องค์กรใช้งาน โดยเก็บ credential จริงไว้ในระบบ secret ตามเดิม
- หลังเปลี่ยนรุ่น ให้ตรวจ log การเชื่อมต่อ การเข้ารหัสและ KMS error พร้อมรันทดสอบงานปกติ ไม่ใช้ข้อมูลจริงหรือ credential จริงในการสร้างอินพุตผิดรูปแบบเพื่อทดสอบช่องโหว่
แพตช์ช่วยป้องกันการใช้งานในอนาคต แต่ไม่พิสูจน์ว่าไม่เคยมีการใช้ช่องโหว่ และไม่ลบคำขอ KMS หรือข้อมูลที่เคยถูกเปลี่ยนก่อนอัปเกรด หากพบการแก้ key vault ที่อธิบายไม่ได้ ให้ตรวจประวัติสิทธิ์และการเรียก KMS ตามกระบวนการตอบสนองเหตุการณ์ขององค์กร ข่าวนี้อาศัยคำอธิบายของผู้ผลิตและระเบียน CVE โดยไม่มีหลักฐานจากต้นทางว่ามีการใช้ช่องโหว่ทั้งสองในการโจมตีจริง
แหล่งต้นทาง: MongoDB C Driver 1.30.14 release notes, MongoDB C Driver 2.5.7 release notes, libmongocrypt 1.21.1 release notes, ระเบียน CVE-2026-114645 และ ระเบียน CVE-2026-114655