ข้ามไปยังเนื้อหา
Cybersecurity

GitLab แพตช์ CVE-2026-97229 คะแนน 10.0 รันโค้ดบนเซิร์ฟเวอร์ผ่าน CI/CD Rapid7 ทำซ้ำได้แล้ว

CVE-2026-97229 ช่องโหว่ CVSS 10.0 ใน GitLab CE/EE เปิดทางรันโค้ดบนเซิร์ฟเวอร์ผ่าน regex ใน CI/CD GitLab แพตช์เมื่อ 12 ต.ค. 2026 และ Rapid7 ยืนยันว่าทำซ้ำได้จริง

โดย กองบรรณาธิการ THAI DATA อ่าน 4 นาที

แชร์FacebookXLINELinkedIn
หน้า GitLab Docs ประกาศ GitLab Critical Patch Release 19.4.2, 19.3.5 และ 19.2.8 ออกเมื่อ 12 ตุลาคม 2026 รายการแรกคือ CVE-2026-97229 Integer Overflow issue in CI/CD Regular Expression Compiler
ภาพ: GitLab (ภาพหน้าจอ)

สรุปประเด็นสำคัญ

  • GitLab ออกแพตช์ฉุกเฉิน 19.4.2, 19.3.5 และ 19.2.8 เมื่อ 12 ตุลาคม 2026 ปิดช่องโหว่ 24 รายการ ระดับ Critical 1 รายการ High 5 รายการ Medium 14 รายการ และ Low 4 รายการ
  • CVE-2026-97229 เป็น integer overflow ในตัวคอมไพล์ regular expression ของ CI/CD ได้คะแนน CVSS 10.0 กระทบ GitLab CE/EE รุ่น 19.2 ถึง 19.4 ที่ติดตั้งเอง
  • Rapid7 ทำซ้ำการรันโค้ดได้บน GitLab CE 19.4.1 อิมเมจทางการ แต่พบว่าผู้โจมตีต้องวางไฟล์ .gitlab-ci.yml ลงโปรเจกต์ได้ก่อน ซึ่งง่ายบนเครื่องที่เปิดให้สมัครสมาชิกเองได้
  • ณ 13 ตุลาคม 2026 ยังไม่พบการโจมตีจริง GitLab.com แพตช์แล้ว และลูกค้า GitLab Dedicated ไม่ต้องทำอะไร

GitLab ออกแพตช์ฉุกเฉินรุ่น 19.4.2, 19.3.5 และ 19.2.8 เมื่อวันที่ 12 ตุลาคม 2026 ปิดช่องโหว่ CVE-2026-97229 คะแนน CVSS 10.0 ที่ทำให้ผู้โจมตีรันโค้ดบนเซิร์ฟเวอร์ GitLab ที่ติดตั้งเองได้ผ่าน regular expression ในคอนฟิก CI/CD วันถัดมา Rapid7 รายงานว่าทำซ้ำการโจมตีได้จริงบนอิมเมจทางการ

GitLab แนะนำให้ทุกเครื่องที่ติดตั้งเอง (self-managed) อัปเดตทันที ส่วน GitLab.com แพตช์แล้ว และลูกค้า GitLab Dedicated ไม่ต้องทำอะไร ณ วันที่ Rapid7 เผยแพร่ ยังไม่มีการยืนยันว่ามีการโจมตีจริง

หน้า GitLab Docs ประกาศ GitLab Critical Patch Release 19.4.2, 19.3.5 และ 19.2.8 ออกเมื่อ 12 ตุลาคม 2026 รายการแรกคือ CVE-2026-97229 Integer Overflow issue in CI/CD Regular Expression Compiler
ประกาศ GitLab Critical Patch Release 19.4.2, 19.3.5 และ 19.2.8 วันที่ 12 ตุลาคม 2026 ซึ่งแก้ CVE-2026-97229 ภาพ: GitLab (ภาพหน้าจอ)

CVE-2026-97229 ทำงานอย่างไร

GitLab อธิบายว่า CVE-2026-97229 เป็น integer overflow ในตัวคอมไพล์ regular expression ของ CI/CD ในบางเงื่อนไข ผู้โจมตีที่ไม่ต้องล็อกอินจะรันโค้ดบนเซิร์ฟเวอร์ได้ด้วย regex ที่สร้างมาเฉพาะ เพราะการตรวจ regex ไม่เพียงพอ GitLab ให้คะแนน CVSS 3.1 เต็ม 10.0 และขอบคุณผู้ใช้ชื่อ joaxcar ที่รายงานผ่านโครงการ bug bounty บน HackerOne

Rapid7 ทดสอบแล้วพบรายละเอียดเพิ่มเติม

  1. regex ที่สร้างมาเฉพาะคอมไพล์ครั้งแรกในรูป US-ASCII และผ่านการตรวจของ GitLab
  2. เมื่อนำไปเทียบกับ path ของ repository ที่มีอักขระ UTF-8 เอนจิน Onigmo ของ Ruby จะคอมไพล์ใหม่หลังการตรวจผ่านไปแล้ว
  3. integer overflow ในการคำนวณขนาดโปรแกรมของตัวคอมไพล์ทำให้เกิดคำสั่ง regex ที่ไม่ถูกต้อง ผู้โจมตีจึงคุมการทำงานและสั่งรันคำสั่งระบบปฏิบัติการด้วยสิทธิ์ผู้ใช้ git ของ GitLab ได้

Rapid7 ยืนยันว่าการโจมตีครบทั้งชุดใช้ได้กับอิมเมจทางการ GitLab 19.4.1 CE บน Linux amd64 ที่เปิด ASLR แต่ใช้ไม่ได้กับ 19.4.2 ที่แพตช์แล้ว

เงื่อนไขที่ CVE-2026-97229 ต้องใช้

แม้คะแนน CVSS ของ GitLab จะระบุว่าไม่ต้องล็อกอิน แต่ Rapid7 พบว่าผู้โจมตีต้องมีวิธีวางไฟล์ .gitlab-ci.yml ที่เป็นอันตราย และ path ที่มีอักขระ UTF-8 ลงใน branch ของโปรเจกต์สาธารณะก่อน บัญชีผู้ใช้ทั่วไปทำได้ถ้าเครื่อง GitLab เปิดให้สร้างโปรเจกต์สาธารณะ และบนเครื่องที่เปิดให้คนภายนอกสมัครสมาชิกเองได้ เงื่อนไขนี้แทบไม่เป็นอุปสรรค

บทวิเคราะห์ Emergent Threat Response ของ Rapid7 วันที่ 13 ตุลาคม 2026 หัวข้อ CVE-2026-97229: Critical Unauthenticated Remote Code Execution in GitLab ระบุว่ายังไม่พบการโจมตีจริงแต่ Rapid7 ทำซ้ำการรันโค้ดได้
บทวิเคราะห์ของ Rapid7 วันที่ 13 ตุลาคม 2026 เรื่อง CVE-2026-97229 ช่องโหว่รันโค้ดจากระยะไกลใน GitLab ภาพ: Rapid7 (ภาพหน้าจอ)

รุ่นที่ต้องอัปเดตเพื่อปิด CVE-2026-97229

GitLab CE/EE รุ่นที่ได้รับผลกระทบ รุ่นที่แก้แล้ว
19.2 ก่อน 19.2.8 19.2.8
19.3 ก่อน 19.3.5 19.3.5
19.4 ก่อน 19.4.2 19.4.2
GitLab.com และ GitLab Dedicated ไม่ต้องทำอะไร
ภาพสรุปรุ่น GitLab CE/EE ที่แก้ CVE-2026-97229 แล้ว: 19.4.2 สำหรับสาย 19.4, 19.3.5 สำหรับสาย 19.3 และ 19.2.8 สำหรับสาย 19.2
สรุปรุ่น GitLab ที่แก้ CVE-2026-97229 แล้ว ได้แก่ 19.4.2, 19.3.5 และ 19.2.8 ภาพ: THAI DATA (ข้อมูล: GitLab)

แพตช์ชุดเดียวกันแก้ช่องโหว่อีก 23 รายการ รายการที่ได้ระดับ High มี 5 รายการ เช่น CVE-2026-92883 cross-site scripting ในการแสดงโค้ดแบบไฮไลต์ (CVSS 8.7) CVE-2026-16301 ที่ทำให้ผู้ใช้ระดับ Developer รัน pipeline บน branch ที่ป้องกันไว้ได้ (CVSS 8.5) และ CVE-2026-96893 ที่เปิดทางแทรกคำสั่งเข้า GitLab Duo Agent Platform (CVSS 7.3) GitLab ยังแก้บั๊กในรุ่น 19.3.4 ที่กระทบหน้า merge request เมื่อเปิดการเชื่อมต่อ Ona

อีก 2 รายการระดับ High ที่ผู้ดูแล CI/CD ควรรู้ คือ CVE-2026-14814 (CVSS 8.2) ที่ผู้ใช้อาจวางข้อมูลปลอมลงแคชของไฟล์ดิบใน repository ทำให้ pipeline ของผู้ใช้อื่นรันเนื้อหาที่สร้างมาเฉพาะ และอาจเปิดเผยตัวแปรสภาพแวดล้อมที่ป้องกันไว้ กับ CVE-2026-81839 (CVSS 7.7) ใน GitLab EE ที่ผู้ใช้อาจรัน pipeline ด้วยสิทธิ์ของกลุ่มใหม่หลังโปรเจกต์ถูกย้ายกลุ่ม เพราะระบบล้างนโยบาย pipeline ที่ตั้งเวลาไว้ไม่ครบ

รอบแพตช์ของ GitLab และสิ่งที่ผู้ดูแลควรวางแผน

GitLab ออกแพตช์ความปลอดภัยสองแบบ คือรอบปกติเดือนละ 2 ครั้งในวันพุธที่สองและสี่ของเดือน และแพตช์ฉุกเฉินนอกรอบสำหรับช่องโหว่ร้ายแรงอย่าง CVE-2026-97229 รายละเอียดของแต่ละช่องโหว่ใน issue tracker จะเปิดเผยหลังออกแพตช์ 90 วัน ผู้ดูแลที่อัปเดตช้าจึงเสี่ยงมากขึ้นเรื่อย ๆ เมื่อข้อมูลทางเทคนิคถูกเปิดเผย ส่วน Rapid7 ระบุว่าจะเผยแพร่บทวิเคราะห์ต้นเหตุและชุดการโจมตีแบบละเอียดแยกต่างหาก ซึ่งจะทำให้ผู้โจมตีรายอื่นทำตามได้ง่ายขึ้นเช่นกัน

ทำไมเรื่องนี้สำคัญ

เซิร์ฟเวอร์ GitLab เก็บซอร์สโค้ดและข้อมูลลับของ pipeline และในหลายองค์กรเชื่อมกับขั้นตอน deploy ด้วย การยึดเครื่อง GitLab ได้จึงเปิดทางไปถึงห่วงโซ่การพัฒนาซอฟต์แวร์ Rapid7 แนะนำให้อัปเดตแบบเร่งด่วนนอกรอบแพตช์ปกติ เพราะ CVE-2026-97229 มีคะแนนสูงสุด เรียกใช้ได้ผ่านเครือข่าย และรันโค้ดใน worker ของแอปพลิเคชัน

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

สิ่งที่องค์กรไทยควรทำ

  • ตรวจรุ่นของ GitLab ที่ติดตั้งเองทุกเครื่อง ทั้งเครื่องหลักและเครื่องทดสอบ แล้วอัปเดตเป็น 19.2.8, 19.3.5 หรือ 19.4.2 ตามสายที่ใช้ทันที
  • ปิดการสมัครสมาชิกเอง (sign-up) และการสร้างโปรเจกต์สาธารณะ ถ้าไม่จำเป็น โดยเฉพาะเครื่องที่เปิดออกอินเทอร์เน็ต
  • ตรวจ log ย้อนหลัง หาโปรเจกต์สาธารณะหรือไฟล์ .gitlab-ci.yml ที่สร้างโดยบัญชีที่ไม่รู้จัก และ path ที่มีอักขระแปลก ๆ
  • หมุนเวียนข้อมูลลับของ CI/CD เช่น token และรหัสผ่านที่เก็บในตัวแปร pipeline หากพบสัญญาณผิดปกติ เพราะผู้โจมตีที่รันคำสั่งได้อาจอ่านค่าเหล่านี้ได้ อ่านข่าวช่องโหว่อื่น ๆ ได้ที่หมวด Security

คำถามที่พบบ่อย

CVE-2026-97229 คืออะไร?

CVE-2026-97229 คือช่องโหว่ integer overflow ในตัวคอมไพล์ regular expression ของ CI/CD ใน GitLab Community Edition และ Enterprise Edition ที่ติดตั้งเอง ผู้โจมตีใช้ regex ที่สร้างมาเฉพาะในคอนฟิก CI/CD รันโค้ดบนเซิร์ฟเวอร์ GitLab ได้ GitLab ให้คะแนน CVSS 10.0 และแพตช์เมื่อ 12 ตุลาคม 2026

GitLab รุ่นใดได้รับผลกระทบจาก CVE-2026-97229 และต้องอัปเดตเป็นรุ่นใด?

CVE-2026-97229 กระทบ GitLab CE/EE รุ่น 19.2 ก่อน 19.2.8 รุ่น 19.3 ก่อน 19.3.5 และรุ่น 19.4 ก่อน 19.4.2 ต้องอัปเดตเป็น 19.2.8, 19.3.5 หรือ 19.4.2 ตามสายที่ใช้ ส่วน GitLab.com แพตช์แล้วและลูกค้า GitLab Dedicated ไม่ต้องทำอะไร

CVE-2026-97229 ถูกโจมตีจริงแล้วหรือยัง?

ณ วันที่ Rapid7 เผยแพร่บทวิเคราะห์ 13 ตุลาคม 2026 ยังไม่มีการยืนยันว่า CVE-2026-97229 ถูกโจมตีจริง แต่ Rapid7 ทำซ้ำการรันโค้ดได้บน GitLab CE 19.4.1 อิมเมจทางการ และแนะนำให้อัปเดตนอกรอบปกติ

ถ้ายังอัปเดต GitLab ไม่ได้ ลดความเสี่ยงจาก CVE-2026-97229 อย่างไร?

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

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

  1. GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8 — GitLab
  2. CVE-2026-97229: Critical Unauthenticated Remote Code Execution in GitLab — Rapid7

บุคคล องค์กร และสถานที่ในข่าวนี้

เลือกชื่อเพื่ออ่านข่าวทั้งหมดที่กล่าวถึง ตัวเลขคือจำนวนข่าว

องค์กรและบริษัท
GitLab4Rapid73
ผลิตภัณฑ์และเทคโนโลยี
Linux22
แชร์FacebookXLINELinkedIn

พบข้อมูลคลาดเคลื่อน? แจ้งกองบรรณาธิการ