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 นาที

สรุปประเด็นสำคัญ
- 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 เผยแพร่ ยังไม่มีการยืนยันว่ามีการโจมตีจริง

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 ทดสอบแล้วพบรายละเอียดเพิ่มเติม
- regex ที่สร้างมาเฉพาะคอมไพล์ครั้งแรกในรูป US-ASCII และผ่านการตรวจของ GitLab
- เมื่อนำไปเทียบกับ path ของ repository ที่มีอักขระ UTF-8 เอนจิน Onigmo ของ Ruby จะคอมไพล์ใหม่หลังการตรวจผ่านไปแล้ว
- 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 เปิดให้สร้างโปรเจกต์สาธารณะ และบนเครื่องที่เปิดให้คนภายนอกสมัครสมาชิกเองได้ เงื่อนไขนี้แทบไม่เป็นอุปสรรค

รุ่นที่ต้องอัปเดตเพื่อปิด 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 | ไม่ต้องทำอะไร |

แพตช์ชุดเดียวกันแก้ช่องโหว่อีก 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 ที่มีช่องโหว่ จึงต้องอัปเดตให้เร็วที่สุด
แหล่งอ้างอิง
บุคคล องค์กร และสถานที่ในข่าวนี้
เลือกชื่อเพื่ออ่านข่าวทั้งหมดที่กล่าวถึง ตัวเลขคือจำนวนข่าว
- ผลิตภัณฑ์และเทคโนโลยี
- Linux22
พบข้อมูลคลาดเคลื่อน? แจ้งกองบรรณาธิการ