# 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 ยืนยันว่าทำซ้ำได้จริง

- ประเภท: ข่าว · หมวด: Cybersecurity
- เผยแพร่: 2026-10-15T06:45:00.000Z · อัปเดต: 2026-10-15T06:45:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/security/gitlab-cve-2026-97229-cvss-10-ci-cd-rce/

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

- 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 Critical Patch Release 19.4.2, 19.3.5 และ 19.2.8 วันที่ 12 ตุลาคม 2026 ซึ่งแก้ CVE-2026-97229](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/gitlab-cve-2026-97229-cvss-10-ci-cd-rce/gitlab-critical-patch-release-19-4-2.webp?v=a29a21b4) _(ภาพ: 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 เปิดให้สร้างโปรเจกต์สาธารณะ และบนเครื่องที่เปิดให้คนภายนอกสมัครสมาชิกเองได้ เงื่อนไขนี้แทบไม่เป็นอุปสรรค

![บทวิเคราะห์ของ Rapid7 วันที่ 13 ตุลาคม 2026 เรื่อง CVE-2026-97229 ช่องโหว่รันโค้ดจากระยะไกลใน GitLab](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/gitlab-cve-2026-97229-cvss-10-ci-cd-rce/rapid7-gitlab-cve-2026-97229.webp?v=d52365ce) _(ภาพ: 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 ที่แก้ CVE-2026-97229 แล้ว ได้แก่ 19.4.2, 19.3.5 และ 19.2.8](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/gitlab-cve-2026-97229-cvss-10-ci-cd-rce/gitlab-cve-2026-97229-fixed-versions.webp?v=8912c204) _(ภาพ: 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](/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 ที่มีช่องโหว่ จึงต้องอัปเดตให้เร็วที่สุด


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

- [GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/) — GitLab
- [CVE-2026-97229: Critical Unauthenticated Remote Code Execution in GitLab](https://www.rapid7.com/blog/post/etr-cve-2026-97229-critical-unauthenticated-remote-code-execution-in-gitlab) — Rapid7
