GitLab แพตช์ CVE-2026-110264 คะแนน 10.0 รันโค้ดได้โดยไม่ต้องล็อกอิน กระทบรุ่นตั้งแต่ 7.0
CVE-2026-110264 ช่องโหว่ CVSS 10.0 ใน GitLab CE/EE ที่ติดตั้งเอง ไม่ต้องล็อกอินก็รันโค้ดบนเซิร์ฟเวอร์ได้ กระทบทุกรุ่นตั้งแต่ 7.0 แพตช์แล้ว 21 ต.ค. 2026
โดย กองบรรณาธิการ THAI DATA อ่าน 6 นาที

สรุปประเด็นสำคัญ
- GitLab ออกแพตช์ฉุกเฉิน 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 และ 18.11.13 เมื่อ 21 ตุลาคม 2026 ปิดช่องโหว่ 12 รายการ ระดับ Critical 1 รายการ High 2 รายการ Medium 5 รายการ และ Low 4 รายการ
- CVE-2026-110264 เป็น integer overflow ตอนคอมไพล์ regular expression ได้คะแนน CVSS 3.1 เต็ม 10.0 ผู้โจมตีไม่ต้องล็อกอินก็รันโค้ดบนเซิร์ฟเวอร์ได้ และกระทบ GitLab CE/EE ทุกรุ่นตั้งแต่ 7.0 ซึ่งออกในปี 2014
- จุดเกิดเหตุต่างจาก CVE-2026-97229 ที่แพตช์ไปเมื่อ 12 ต.ค. โดยรอบนี้อยู่ในตัวแสดงผลไฟล์ Org-mode (.org) ผ่าน gem org-ruby ไม่ใช่ regex ในคอนฟิก CI/CD เครื่องที่ลงแพตช์รอบก่อนแล้วจึงยังต้องอัปเดตอีกครั้ง
- GitLab.com แพตช์แล้ว ลูกค้า GitLab Dedicated ที่ใช้ 19.3.5-internal0 หรือ 19.4.2-internal0 ขึ้นไปไม่ต้องทำอะไร และ ณ แค็ตตาล็อก KEV ของ CISA ฉบับ 21 ต.ค. 2026 ยังไม่มีช่องโหว่นี้
GitLab ออกแพตช์ฉุกเฉินรุ่น 19.5.1, 19.4.3, 19.3.6 และอีก 4 สายเมื่อวันที่ 21 ตุลาคม 2026 ปิดช่องโหว่ CVE-2026-110264 คะแนน CVSS 10.0 ที่ผู้โจมตีไม่ต้องล็อกอินก็รันโค้ดบนเซิร์ฟเวอร์ GitLab ที่ติดตั้งเองได้ ช่องโหว่กระทบทุกรุ่นตั้งแต่ GitLab 7.0 ซึ่งออกในปี 2014
นี่เป็นช่องโหว่คะแนนเต็มตัวที่สองของ GitLab ในเวลาไม่ถึงสิบวัน ต่อจาก CVE-2026-97229 ที่แพตช์เมื่อ 12 ตุลาคม แต่อยู่คนละจุดในโค้ด เครื่องที่ลงแพตช์รอบก่อนแล้วจึงยังต้องอัปเดตอีกครั้ง GitLab แนะนำให้ทุกเครื่องที่ติดตั้งเองอัปเดตทันที ส่วน GitLab.com แพตช์แล้ว และลูกค้า GitLab Dedicated ที่ใช้รุ่น 19.3.5-internal0 หรือ 19.4.2-internal0 ขึ้นไปไม่ต้องทำอะไร

CVE-2026-110264 คือช่องโหว่อะไร
ประกาศของ GitLab อธิบายว่า CVE-2026-110264 เป็น integer overflow ที่เกิดตอนคอมไพล์ regular expression ที่สร้างมาเฉพาะ ในบางเงื่อนไขผู้ใช้ที่ไม่ได้ล็อกอินจึงรันโค้ดใดก็ได้บนเซิร์ฟเวอร์ GitLab ได้ GitLab ให้คะแนน CVSS 3.1 เต็ม 10.0 (เวกเตอร์ AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) จัดอยู่ในกลุ่ม CWE-190 และขอบคุณนักวิจัยชื่อ joaxcar ที่รายงานผ่านโครงการ bug bounty บน HackerOne ซึ่งเป็นผู้รายงาน CVE-2026-97229 ด้วย
เอกสารกฎตรวจจับที่ทีมความปลอดภัยของ GitLab เผยแพร่คู่กับแพตช์ให้รายละเอียดมากกว่าตัวประกาศ
- จุดที่มีช่องโหว่คือตัวแสดงผลไฟล์ Org-mode (.org) ซึ่ง GitLab ใช้ gem ชื่อ org-ruby รุ่น 0.9.12 ทำงานผ่านระบบแสดงผล markup ของ GitLab
- gem นี้นำคำในบรรทัด
#+TODO:ของไฟล์ .org ไปสร้างเป็น regular expression โดยไม่กรองให้ครบ ผู้ที่ทำให้ GitLab แสดงผลไฟล์ .org ได้จึงคุมเนื้อหาของ regex ได้ - คำที่สร้างมาเฉพาะทำให้ Onigmo เอนจิน regex ของ Ruby เขียนข้อมูลเกินขอบเขตหน่วยความจำตอนจับคู่ข้อความ (CWE-787) ซึ่งนำไปสู่การรันคำสั่งด้วยสิทธิ์ผู้ใช้ git ของ GitLab
- GitLab ระบุว่าการโจมตีไม่ต้องยืนยันตัวตน ขอเพียงมีโปรเจกต์สาธารณะหนึ่งโปรเจกต์ที่วางไฟล์ .org ได้ และการโจมตีต้องลองซ้ำหลายครั้ง ส่วนใหญ่ไม่สำเร็จในครั้งเดียว
GitLab ประเมินว่าผู้ที่เจาะสำเร็จจะเข้าถึงข้อมูลลับของเครื่องในไฟล์ gitlab-secrets.json ตัวแปร CI/CD ทุกตัว token ของ runner และ access token รวมถึงอ่านและเขียนได้ทุก repository บนเครื่อง ในรายการแก้บั๊กของรุ่น 19.5.1 และ 19.4.3 ยังมีรายการเพิ่มแพตช์แก้ปัญหา repeat ID overflow ของ regexp ใน Ruby 3.3, 3.4 และ 4.0
CVE-2026-110264 ต่างจาก CVE-2026-97229 อย่างไร
ทั้งสองช่องโหว่ได้คะแนนเต็ม 10.0 และพาโค้ดที่ผู้โจมตีคุมได้ไปถึงเอนจิน Onigmo เหมือนกัน แต่ทางเข้า ช่วงรุ่นที่กระทบ และรุ่นที่แก้แล้วต่างกัน เอกสารตรวจจับของ GitLab ระบุด้วยว่า CVE-2026-97229 คือการเลี่ยงแพตช์ของช่องโหว่ก่อนหน้า CVE-2026-93577 ในเส้นทาง CI/CD เดียวกัน
| ประเด็น | CVE-2026-97229 | CVE-2026-110264 |
|---|---|---|
| วันที่ GitLab แพตช์ | 12 ตุลาคม 2026 | 21 ตุลาคม 2026 |
| จุดที่มีช่องโหว่ | regex ในกฎ rules:regexp ของคอนฟิก CI/CD |
คำในบรรทัด #+TODO: ของไฟล์ .org ที่ org-ruby นำไปสร้าง regex |
| ลักษณะความผิดพลาด | โปรแกรม regex ใหญ่เกินจนตัวเลขล้นตอนคอมไพล์ | repeat ID ล้นจนเขียนเกินขอบเขตตอนจับคู่ |
| รุ่นที่กระทบ | 19.2 ถึง 19.4 | ทุกรุ่นตั้งแต่ 7.0 |
| คะแนน CVSS 3.1 | 10.0 | 10.0 |
รุ่นที่ต้องอัปเดตเพื่อปิด CVE-2026-110264
นอกจากรุ่นแพตช์ตามปกติ 19.5.1, 19.4.3 และ 19.3.6 แล้ว GitLab ระบุว่านำการแก้ CVE-2026-110264 ย้อนไปใส่รุ่น 18.11.13, 19.0.10, 19.1.9 และ 19.2.9 ด้วย ข้อมูลจากประกาศและบันทึก CVE มีดังนี้
| GitLab CE/EE รุ่นที่ได้รับผลกระทบ | รุ่นที่แก้แล้ว |
|---|---|
| 7.0 ถึงก่อน 18.11.13 | 18.11.13 |
| 19.0 ก่อน 19.0.10 | 19.0.10 |
| 19.1 ก่อน 19.1.9 | 19.1.9 |
| 19.2 ก่อน 19.2.9 | 19.2.9 |
| 19.3 ก่อน 19.3.6 | 19.3.6 |
| 19.4 ก่อน 19.4.3 | 19.4.3 |
| 19.5 ก่อน 19.5.1 | 19.5.1 |
| GitLab.com และ GitLab Dedicated (19.3.5-internal0 / 19.4.2-internal0 ขึ้นไป) | ไม่ต้องทำอะไร |
แท็ก v7.0.0 ใน repository ของ GitLab สร้างเมื่อ 20 มิถุนายน 2014 ช่วงรุ่นที่กระทบจึงครอบคลุมราว 12 ปี เครื่องที่ยังใช้สาย 18 หรือเก่ากว่านั้นต้องขึ้นเป็น 18.11.13 เป็นอย่างน้อย

ช่องโหว่อื่นในแพตช์ชุดเดียวกัน
แพตช์วันที่ 21 ตุลาคมแก้ช่องโหว่รวม 12 รายการ นอกจาก CVE-2026-110264 แล้วมีระดับ High อีก 2 รายการ
- CVE-2026-15723 (CVSS 8.2) เมื่อเปิดทั้ง OmniAuth SAML และการเชื่อมบัญชี LDAP อัตโนมัติ ผู้ใช้ที่ล็อกอินแล้วอาจยึดบัญชีที่ผูกกับ LDAP ของคนอื่นได้โดยเจ้าของบัญชีไม่ต้องทำอะไร กระทบตั้งแต่รุ่น 10.1
- CVE-2026-112212 (CVSS 7.5) ผู้ที่ไม่ต้องล็อกอินอาจวางข้อมูลปลอมลงแคชของเอกสาร OAuth/OIDC discovery เพื่อพาขั้นตอนบางอย่างไปยังเซิร์ฟเวอร์ภายนอก กระทบตั้งแต่รุ่น 18.3
ที่เหลือเป็นระดับ Medium 5 รายการและ Low 4 รายการ เช่น CVE-2026-105777 ที่อาจเปิดเผยข้อมูลรับรองภายในของเซิร์ฟเวอร์ผ่าน response header และ CVE-2026-14288 ที่อาจเลี่ยงนโยบายอนุมัติ merge request บน branch ที่ป้องกันไว้ใน GitLab EE
สถานะการโจมตีและวิธีตรวจหาร่องรอย
ประกาศของ GitLab ไม่ได้ระบุว่า CVE-2026-110264 ถูกโจมตีจริง และแค็ตตาล็อก KEV ของ CISA ฉบับวันที่ 21 ตุลาคม 2026 ยังไม่มีช่องโหว่นี้ แต่ GitLab ออกกฎตรวจจับในรูปแบบ Sigma 2 ชุดให้ลูกค้าที่ติดตั้งเองใช้ทันที
- Org mode render error burst อ่านไฟล์
exceptions_json.logและแจ้งเตือนเมื่อ client รายเดียวทำให้ตัวแสดงผล OtherMarkup เกิดTimeout::Errorกับไฟล์ .org ตั้งแต่ 5 ครั้งขึ้นไปภายใน 30 นาที กฎชุดเดียวกันยังจับการเรียกหน้า preview ที่บังคับใช้ตัวแสดงผล Org กับไฟล์ที่ไม่ใช่ .org - Onigmo native worker crash อ่านไฟล์
puma_stderr.logหารายงาน[BUG]ที่ Ruby เขียนตอน worker ล่ม ซึ่งมี frame ของ org-ruby หรือ Onigmo กฎนี้จับร่องรอยของ CVE-2026-97229 ได้ด้วย
GitLab ย้ำว่าการโจมตีที่สำเร็จอาจเงียบและไม่ทำให้ worker ล่ม การไม่พบการแจ้งเตือนจึงไม่ได้แปลว่าเครื่องปลอดภัย และควรตรวจร่วมกับ HTTP 502 ของ Workhorse บนหน้าแสดงไฟล์ .org กับการสแกนไฟล์ .org ใน repository ที่มีบรรทัด #+TODO: ยาวผิดปกติ GitLab เตือนด้วยว่า log หลายไฟล์ไม่ได้ถูกส่งเข้า SIEM โดยค่าเริ่มต้น

ทำไมเรื่องนี้สำคัญ
GitLab เก็บซอร์สโค้ด ข้อมูลลับของ pipeline และ token ที่เชื่อมไปยังระบบ deploy การยึดเซิร์ฟเวอร์ GitLab ได้จึงเปิดทางไปทั้งห่วงโซ่การพัฒนาซอฟต์แวร์ CVE-2026-110264 อันตรายกว่า CVE-2026-97229 ในแง่ขอบเขต เพราะกระทบทุกรุ่นตั้งแต่ 7.0 ซึ่งรวมเครื่องเก่าที่ถูกลืมและไม่ได้อัปเดตมานาน รายละเอียดใน issue tracker ของ GitLab จะเปิดเผยหลังออกแพตช์ 90 วัน และบันทึก CVE อ้างถึงรายงานบน HackerOne ที่ติดป้ายว่ามีชุดการโจมตี (exploit) เมื่อข้อมูลเหล่านี้เปิดสู่สาธารณะ ผู้โจมตีรายอื่นจะทำตามได้ง่ายขึ้น
สิ่งที่องค์กรไทยควรทำ
- ไล่หาเครื่อง GitLab ที่ติดตั้งเองทุกเครื่อง รวมเครื่องทดสอบ เครื่องของโครงการเก่า และเครื่องที่ผู้รับเหมาตั้งไว้ แล้วอัปเดตเป็นรุ่นที่แก้แล้วตามตาราง เครื่องที่ลงแพตช์ CVE-2026-97229 ไปแล้วเมื่อสัปดาห์ก่อนต้องอัปเดตอีกรอบ
- เครื่องที่เปิดออกอินเทอร์เน็ตทำก่อน ระหว่างรออัปเดต ทบทวนว่าจำเป็นต้องเปิดให้คนภายนอกสมัครสมาชิกหรือสร้างโปรเจกต์สาธารณะหรือไม่ เพราะ GitLab ระบุว่าผู้โจมตีต้องการโปรเจกต์สาธารณะที่วางไฟล์ .org ได้ วิธีนี้เป็นเพียงการลดช่องทาง ไม่ใช่การแก้ช่องโหว่
- นำกฎตรวจจับ 2 ชุดของ GitLab เข้า SIEM และตรวจว่าส่ง
exceptions_json.log,puma_stderr.logและ log ของ Workhorse ออกไปเก็บจริง จากนั้นตรวจย้อนหลังหาไฟล์ .org แปลกปลอมในโปรเจกต์สาธารณะ - ถ้าพบสัญญาณผิดปกติ ให้หมุนเวียนข้อมูลลับ ทั้งตัวแปร CI/CD, token ของ runner, access token และข้อมูลใน gitlab-secrets.json เพราะ GitLab ระบุว่าผู้ที่เจาะสำเร็จเข้าถึงข้อมูลเหล่านี้ได้ ติดตามข่าวช่องโหว่อื่น ๆ ได้ที่หมวด Security
คำถามที่พบบ่อย
CVE-2026-110264 คืออะไร?
CVE-2026-110264 คือช่องโหว่ integer overflow ตอนคอมไพล์ regular expression ใน GitLab Community Edition และ Enterprise Edition ที่ติดตั้งเอง ผู้โจมตีที่ไม่ต้องล็อกอินรันโค้ดบนเซิร์ฟเวอร์ GitLab ได้ GitLab ให้คะแนน CVSS 3.1 เต็ม 10.0 และแพตช์เมื่อ 21 ตุลาคม 2026
GitLab รุ่นใดได้รับผลกระทบจาก CVE-2026-110264 และต้องอัปเดตเป็นรุ่นใด?
CVE-2026-110264 กระทบ GitLab CE/EE ทุกรุ่นตั้งแต่ 7.0 ที่เก่ากว่า 18.11.13 และรุ่น 19.0 ถึง 19.5 ที่ยังไม่ได้แพตช์ ต้องอัปเดตเป็น 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 หรือ 19.5.1 ตามสายที่ใช้ ส่วน GitLab.com แพตช์แล้ว
CVE-2026-110264 ต่างจาก CVE-2026-97229 อย่างไร?
ทั้งสองช่องโหว่ได้ CVSS 10.0 และเกิดใน Onigmo ซึ่งเป็นเอนจิน regex ของ Ruby เหมือนกัน แต่ CVE-2026-97229 อยู่ที่ regex ในคอนฟิก CI/CD และกระทบเฉพาะรุ่น 19.2 ถึง 19.4 ส่วน CVE-2026-110264 อยู่ที่ตัวแสดงผลไฟล์ Org-mode และกระทบตั้งแต่รุ่น 7.0 แพตช์ของรอบ 12 ต.ค. ไม่ได้ปิด CVE-2026-110264
CVE-2026-110264 ถูกโจมตีจริงแล้วหรือยัง?
ประกาศแพตช์ของ GitLab วันที่ 21 ตุลาคม 2026 ไม่ได้ระบุว่า CVE-2026-110264 ถูกโจมตีจริง และแค็ตตาล็อก KEV ของ CISA ฉบับ 21 ตุลาคม 2026 ยังไม่มีช่องโหว่นี้ แต่ GitLab ออกกฎตรวจจับความพยายามโจมตี 2 ชุดให้ลูกค้าที่ติดตั้งเองใช้แล้ว
แหล่งอ้างอิง
- GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13 — GitLab
- CVE-2026-110264 Detail — NIST National Vulnerability Database
- Org mode render error burst (TLDR detection) — GitLab Security
- Onigmo native worker crash (TLDR detection) — GitLab Security
- Known Exploited Vulnerabilities Catalog — CISA
บุคคล องค์กร และสถานที่ในข่าวนี้
เลือกชื่อเพื่ออ่านข่าวทั้งหมดที่กล่าวถึง ตัวเลขคือจำนวนข่าว
- องค์กรและบริษัท
- GitLab7EE3CISA29HackerOne5
พบข้อมูลคลาดเคลื่อน? แจ้งกองบรรณาธิการ