ห้องเก็บ repository สีเขียวเข้มมีแฟ้มหนึ่งถูกดึงลอดช่องทางเดินผิดปกติสีอำพันโดยไม่ผ่านประตูตรวจ

GitLab 19.3.2 อุด File Read ไม่ต้อง Login และ Duo Deserialization

พี่โชว์Engineering

GitLab อยู่ใกล้ source code, CI token, artifact และ deployment credential กว่าระบบเว็บทั่วไปครับ ช่องโหว่ arbitrary file read ที่ไม่ต้อง login จึงไม่ใช่แค่ข้อมูลรั่วหนึ่งไฟล์ แฟ้ม config หรือ secret ที่อ่านได้อาจกลายเป็นบันไดไปสิทธิ์อื่น

GitLab ออกแพตช์ วันที่ 10 กันยายน 2026 สำหรับ CVE-2026-85706 คะแนน CVSS 10.0 กระทบ 18.7 ถึงก่อน 19.1.8, 19.2 ถึงก่อน 19.2.6 และ 19.3 ถึงก่อน 19.3.2 วันถัดมา CISA เพิ่ม CVE นี้ใน KEV พร้อมกำหนดหน่วยงานตามขอบเขตให้แก้ภายใน 14 กันยายน เป็นหลักฐานว่ามีการใช้ช่องโหว่จริง

WHY: แพตช์ก่อน แล้วค่อยพิสูจน์ขอบเขต

อย่ารอ log ที่ “ยืนยันว่าโดน” ก่อนอัปเดต เพราะการไม่มี log อาจหมายถึงเส้นทางโจมตีไม่ผ่านชั้นที่บันทึก ใช้ inventory หา GitLab instance ทั้ง internet-facing, VPN, staging และ runner image แยกเวอร์ชัน แล้วปิด exposure ชั่วคราวหากยังเข้า maintenance window ไม่ได้

release เดียวกันแก้ CVE-2026-87719 คะแนน 9.9 ซึ่งเป็น insecure deserialization ใน GraphQL subscription สำหรับผู้ใช้ที่ยืนยันตัวตนและเกี่ยวกับ Duo Chat แม้ไม่อยู่ใน KEV ที่ตรวจรอบนี้ instance ที่เปิด Duo จึงต้องทดสอบเส้นทางดังกล่าวหลังอัป

HOW: อัปเดตแบบมีทางกลับ แต่ไม่ย้อนสู่รุ่นเสี่ยง

สำรองฐานข้อมูลและ config ตาม runbook ของ edition ที่ใช้ ตรวจ backup คืนได้ และบันทึก package/image digest ก่อนเปลี่ยน สำหรับ single-node GitLab ระบุว่า database migration ทำให้มี downtime ส่วน multi-node ใช้ zero-downtime flow ได้ รุ่น 19.3.2 ยังมี post-deployment migration ที่ผู้ดูแลต้องติดตามจนเสร็จ

หลังอัป ยืนยัน version จากหน้า admin และ package manager ตรวจ health ของ web, Sidekiq, Gitaly, registry, CI clone/push และ auth integration อย่าจบที่ service ขึ้น เพราะ schema migration กับ background job อาจยังค้าง

Hunt และ Rotation

เก็บ reverse-proxy, application, audit และ object-storage logs ก่อน retention หมุน หา request ผิดปกติไป path ที่เกี่ยวกับ file access, error จาก traversal, token use จาก IP ใหม่ และ repository export แปลก ๆ รายละเอียด IOC อาจเปลี่ยน จึงติดตาม advisory ทางการเพิ่ม

ถ้ามีหลักฐานหรือสงสัยว่า secret file ถูกอ่าน ให้หมุน credential ตาม blast radius: GitLab secrets, runner token, deploy token, integration secret และ cloud key การ rotate ทั้งหมดโดยไม่มีลำดับอาจทำให้ระบบล่ม ให้ inventory dependency และทำตาม incident commander

Recap

  • อัปเป็น 19.3.2, 19.2.6 หรือ 19.1.8 ตามสายที่รองรับ
  • ลด exposure ระหว่างรอ maintenance
  • สำรองและทดสอบ restore ก่อน migration
  • ตรวจ post-deploy migration กับเส้นทาง CI จริง
  • เก็บ log และเตรียม rotate secret เมื่อมีเหตุสงสัย

เริ่มจาก inventory เวอร์ชันและ exposure ตอนนี้ เพราะ due date ของ KEV ใกล้กว่ารอบ patch ปกติครับ