สรุปสั้น

บริษัท Progress Software เปิดเผยช่องโหว่ 31 รายการใน MarkLogic Server ฐานข้อมูลเอกสาร NoSQL ระดับองค์กร เมื่อวันที่ 12 ตุลาคม 2569 โดยจัด 5 รายการเป็นระดับวิกฤต คะแนน CVSS 9.9 จำนวน 3 รายการ และ 9.6 จำนวน 2 รายการ จุดที่น่ากังวลที่สุดคือ CVE-2026-85947 และ CVE-2026-85948 ซึ่งเปิดให้บัญชีที่ได้รับสิทธิ์จัดการเพียงบางส่วน เช่น สิทธิ์จัดการ forest หรือสิทธิ์ระดับ manage-user ยกระดับตัวเองเป็นผู้ดูแลระบบแบบถาวรได้ แพตช์ออกมาตั้งแต่ 10 กันยายนใน MarkLogic 11.3.7 และ 12.1.0 ส่วนผู้ที่เพิ่งอัปเดตเป็น 11.3.6 หรือ 12.0.3 เพื่อปิดช่องโหว่ชุดเดือนสิงหาคม ยังได้รับผลกระทบจากชุดใหม่นี้

ทุกช่องโหว่วิกฤตต้องการให้ผู้โจมตีมีสิทธิ์บางอย่างหรือรันโค้ดบนเซิร์ฟเวอร์ได้อยู่แล้ว จึงเป็นความเสี่ยงหลักจากคนใน บัญชีที่ถูกยึด หรือบัญชีที่มอบสิทธิ์จัดการแบบแยกส่วน ณ วันที่ 13 ตุลาคม Progress ไม่ได้ระบุว่ามีการโจมตีจริง ไม่มีช่องโหว่ใดอยู่ในบัญชี KEV ของ CISA และไม่มีทางเลี่ยงสำหรับผู้ที่ยังอัปเกรดไม่ได้ ขณะเดียวกันการอัปเกรดเองก็มีการเปลี่ยนสิทธิ์ ค่าเริ่มต้น และฟีเจอร์ที่ถูกถอดออก ซึ่งอาจทำให้โค้ดหรือระบบอัตโนมัติเดิมใช้งานไม่ได้ ผู้ดูแลจึงต้องวางแผนอัปเกรดอย่างระมัดระวัง

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 13 ตุลาคม 2569 ว่า Progress เผยแพร่ช่องโหว่ทั้ง 31 รายการพร้อมกัน แพตช์มีให้ใช้แล้วตั้งแต่ 10 กันยายน หรือ 32 วันก่อนบันทึก CVE ปรากฏ เวอร์ชันที่ได้รับผลกระทบคือ MarkLogic 11.x ก่อน 11.3.7 และ 12.x ก่อน 12.1.0 สาย 11.3 เป็นรุ่นสนับสนุนระยะยาว (LTS) ส่วนสาย 12 ซึ่ง Progress เรียกว่า innovation release ไม่มีแพตช์สำหรับ 12.0 ต้องขึ้นไปที่ 12.1.0 ซึ่งมีฟีเจอร์ใหม่มาด้วย

นี่เป็นช่องโหว่ชุดที่ 2 ของ MarkLogic ในรอบ 68 วัน เมื่อวันที่ 5 สิงหาคม Progress เปิดเผยไปแล้ว 10 รายการ มีระดับวิกฤต 7 รายการ รวมถึง CVE-2026-9192 คะแนน 9.8 ที่เปิดให้ผู้โจมตีจากระยะไกลโดยไม่ต้องยืนยันตัวตนข้ามการตรวจรหัสผ่านบน ODBC App Server ได้ การค้นฐานข้อมูล NVD ของ The Hacker News เมื่อ 13 ตุลาคม พบบันทึก CVE ที่เกี่ยวกับ MarkLogic 49 รายการ ในจำนวนนี้ 41 รายการมาจาก 2 ชุดล่าสุด

ช่องโหว่วิกฤต 4 ใน 5 รายการรายงานโดยนักวิจัยภายนอกผ่าน Bugcrowd นักวิจัยชื่อ rexnets ได้รับเครดิต CVE-2026-85947, CVE-2026-85948 และ CVE-2026-85956 ส่วน WaltWhitehat ได้รับเครดิต CVE-2026-9191

รายละเอียดช่องโหว่

CVECVSSผู้โจมตีต้องมีผลที่เกิดได้
CVE-2026-859479.9สิทธิ์จัดการ forestสร้างบัญชีผู้ดูแลระบบถาวร ควบคุมเซิร์ฟเวอร์ได้ทั้งหมด
CVE-2026-859489.9สิทธิ์ระดับ manage-userได้สิทธิ์ผู้ดูแลถาวรผ่าน XQuery injection ใน Management API path ที่เลิกใช้แล้ว
CVE-2026-859559.9สิทธิ์รันคิวรีและสิทธิ์ xdmp-eval-inรันโค้ดฝั่งเซิร์ฟเวอร์ด้วยสิทธิ์สูงขึ้น
CVE-2026-859569.6สิทธิ์ผู้ดูแลฐานข้อมูลแบบมอบหมายแบ็กอัปหรือกู้คืน forest นอกฐานข้อมูลของตน เข้าถึงหรือแก้ข้อมูลด้านความปลอดภัย
CVE-2026-91919.6รันโค้ดผ่าน REST และ XDBC evaluation path บางเส้นทางทำการที่ไม่ได้รับอนุญาตหรือยึดเซสชันที่ยืนยันตัวตนแล้ว

ใน MarkLogic “forest” คือกลุ่มเอกสารที่ผูกกับฐานข้อมูล แพตช์ของ CVE-2026-85947 ชี้ให้เห็นปัญหาว่าสิทธิ์จัดการระดับ forest เพียงอย่างเดียวไม่ควรพอสำหรับการผูก forest เข้ากับฐานข้อมูลใดก็ได้ตามต้องการ ซึ่งเดิมเปิดทางให้ยกระดับสิทธิ์ได้

ช่องโหว่ที่เหลือมีระดับสูง 24 รายการและระดับกลาง 2 รายการ สูงสุดคือ CVE-2026-85954 คะแนน 8.6 ยกระดับสิทธิ์ผ่านฟังก์ชัน XQuery หลายรายการมีผลเฉพาะเมื่อเปิดใช้ฟีเจอร์บางอย่าง ได้แก่

  • SAML: ผู้โจมตีที่ไม่ต้องยืนยันตัวตนทำให้เซิร์ฟเวอร์ยอมรับ assertion ที่ควรปฏิเสธ (CVE-2026-85962) และบน 11.x ตัวแยกวิเคราะห์ SAML ประมวลผล DTD/entity ภายนอกได้ (CVE-2026-85957)
  • OAuth: ใช้โทเคนที่ไม่ควรถูกยอมรับได้ (CVE-2026-85958) แพตช์เพิ่มการตรวจ issuer และ audience
  • Kerberos แบบรหัสผ่าน: ผู้โจมตีในเครือข่ายปลอมเป็นบริการยืนยันตัวตน Kerberos ได้ในบางการตั้งค่า (CVE-2026-85972)
  • คลาวด์: ผู้ใช้ที่ยืนยันตัวตนแล้วเข้าถึงบริการภายในของคลาวด์และดึงข้อมูลรับรองคลาวด์ได้ บน Azure (CVE-2026-85951) และ Linux บนคลาวด์ (CVE-2026-85952)
  • ล็อกวินิจฉัย: ข้อมูลอ่อนไหวถูกเขียนลงล็อก (CVE-2026-85949 และบน Azure CVE-2026-85961) โดย AWS secret key และ session token ถูกบันทึกเป็นข้อความธรรมดาเมื่อเปิด IAM trace
  • Amazon S3: การเชื่อมต่อ S3 ใช้ cleartext เป็นค่าเริ่มต้น (CVE-2026-85975)
  • Query Console: หลอกผู้ใช้ที่ล็อกอินอยู่ให้เปิดหน้าเว็บอันตรายแล้วรันโค้ดด้วยสิทธิ์ของผู้ใช้นั้น (CVE-2026-85960) และผู้ใช้ Query Console อ่านไฟล์ใดก็ได้บนเซิร์ฟเวอร์ (CVE-2026-85964)
  • ส่วนประกอบเก่า: OpsDirector ที่เลิกใช้แล้วเปิดให้ผู้โจมตีที่ไม่ต้องยืนยันตัวตนส่งคำขอไปยังบริการภายใน (CVE-2026-85963) และโมดูล InfoStudio เก่าเข้าถึงไฟล์บนเซิร์ฟเวอร์ได้ (CVE-2026-85953)
  • บันทึก audit: การล็อกอินสำเร็จไม่ได้ถูกบันทึกเสมอ (CVE-2026-85959) ซึ่ง Progress ระบุว่าอาจจำกัดความสามารถในการตรวจจับการเข้าถึงโดยไม่ได้รับอนุญาต

ผลกระทบ

สำหรับองค์กรที่ใช้ MarkLogic ช่องโหว่ยกระดับสิทธิ์ทำให้การแบ่งสิทธิ์ผู้ดูแลแบบมอบหมาย ซึ่งออกแบบมาเพื่อจำกัดความเสียหาย กลายเป็นทางขึ้นสู่สิทธิ์ผู้ดูแลเต็ม หากบัญชีที่มีสิทธิ์บางส่วนถูกยึดหรือคนในมีเจตนาร้าย ผู้โจมตีจะสร้างบัญชีแอดมินถาวร อ่านแก้ข้อมูลทั้งระบบ และคงสิทธิ์ไว้ได้ ช่องโหว่ฝั่งคลาวด์และล็อกยังเสี่ยงทำให้ข้อมูลรับรอง AWS หรือ Azure รั่วไหล ซึ่งขยายผลไปยังทรัพยากรคลาวด์อื่นได้

ประเด็นที่ยังไม่ชัดคือบันทึก CVE และเอกสารอัปเกรดไม่ได้ระบุว่าการอัปเกรดจะลบบัญชีแอดมินที่ถูกสร้างผ่าน CVE-2026-85947 ก่อนหน้าหรือไม่ ระบบที่อาจถูกบุกรุกไปแล้วจึงยังต้องตรวจเอง นอกจากนี้การอัปเกรดอาจทำให้งานเดิมพัง เช่น MarkLogic Content Pump (mlcp) รุ่นเก่าล้มเหลวด้วยข้อผิดพลาด XDMP-ISOLATED, API /manage/v2/packages InfoStudio และ OpsDirector ถูกถอดออก, xdmp:eval-in() ต้องการทั้งสิทธิ์ xdmp-eval-in และ xdmp-eval, MarkLogic 11.3.7 ไม่รองรับ Amazon Linux 2 และการอัปเกรดอาจล้มเหลวหากคลัสเตอร์มี role ผู้ใช้ หรือสิทธิ์ที่ชื่อชนกับระบบตั๋วใหม่ 5 ชื่อ Progress เตือนด้วยว่าหลังแก้ CVE-2026-85954 “คุณอาจไม่มีสิทธิ์บางอย่างที่เคยมี เพราะสิทธิ์นั้นไม่ถูกต้องตั้งแต่แรก”

คำแนะนำ

  • อัปเกรดเป็น MarkLogic 11.3.7 (LTS) หรือ 12.1.0 โดยเร็ว ผู้ที่อยู่บน 11.3.6 หรือ 12.0.3 ต้องอัปเกรดซ้ำ เพราะยังได้รับผลกระทบ
  • อ่านบันทึกการอัปเกรดและรายการ known incompatibilities ของแต่ละเวอร์ชันก่อน และทดสอบในสภาพแวดล้อมทดสอบ โดยเฉพาะ mlcp สคริปต์ที่ใช้ xdmp:eval-in() และระบบที่ใช้ API ที่ถูกถอดออก
  • ก่อนอัปเกรด ทบทวนการมอบสิทธิ์จัดการ forest และฐานข้อมูลแบบมอบหมาย และตรวจ role ที่ถือสิทธิ์ xdmp-eval-in ให้เหลือเท่าที่จำเป็น
  • ตรวจหาบัญชีผู้ดูแลระบบที่ไม่รู้จักหรือถูกสร้างใหม่ เพราะไม่ชัดเจนว่าการอัปเกรดจะลบบัญชีที่ถูกสร้างผ่านช่องโหว่ไปแล้วหรือไม่
  • หากเปิด IAM trace หรือล็อกวินิจฉัยบนคลาวด์ ให้ตรวจล็อกเก่าว่ามี AWS secret key หรือ session token หลุดหรือไม่ และหมุนเวียนข้อมูลรับรองที่อาจรั่ว
  • หลังอัปเกรด สร้างหรือหมุนไฟล์ ErrorLog.txt และ AuditLog.txt ใหม่ เพื่อให้ได้สิทธิ์ไฟล์ 0640 และจัดเตรียม keytab สำหรับการแก้ไข Kerberos
  • จำกัดการเข้าถึง Query Console และพอร์ตจัดการ MarkLogic เฉพาะเครือข่ายผู้ดูแล และปิด SAML, OAuth หรือฟีเจอร์ที่ไม่ได้ใช้

แหล่งอ้างอิง