אותו באג באותו רכיב, שלושה שבועות הפרש: החולשה בציון 10 בקומפיילר ה-CI/CD של GitLab
ב-12 באוקטובר GitLab שחררה עדכון חירום לשלוש גרסאות במקביל, ובתוכו חולשה בציון 10.0, המקסימום בסולם CVSS. הרכיב הפגיע מקמפל ביטויים רגולריים מקבצי התצורה של ה-CI/CD, וקיבל תיקון לאותו סוג באג בדיוק לפני פחות משלושה שבועות. מה שהשתנה בין הפעמים הוא מטריקה אחת בווקטור, וזה כל ההפרש בין 9.9 ל-10.
סקירה כללית
קובץ התצורה של ה-CI/CD הוא לב העבודה ב-GitLab, פלטפורמה לניהול קוד ולהרצת תהליכי בנייה ופריסה אוטומטיים שבארגונים רבים יושבת על שרת פרטי במודל self-managed. הקובץ מגדיר מה ירוץ ומתי, ובתוכו ביטויים רגולריים: תבניות שקובעות על אילו שמות ענפים יופעל שלב בתהליך. GitLab מקמפלת אותן לפני ההפעלה, וכאן נמצאת הבעיה.
תבנית שנבנתה במיוחד גורמת לחישוב פנימי בקומפיילר לחרוג מהגודל המקסימלי שהמשתנה יכול להכיל, ומספר שחורג כך מתהפך לערך קטן או שלילי. לסוג הבאג הזה קוראים גלישת מספר שלם (integer overflow), וב-NVD הוא ממופה כ-CWE-190. התוצאה, לפי GitLab, היא הרצת קוד על השרת. חשופות רק ההתקנות הפרטיות: GitLab.com כבר על הגרסה המתוקנת, ולקוחות GitLab Dedicated לא נדרשים לפעולה.
מזהה: CVE-2026-97229
סוג: גלישת מספר שלם בקומפילציה של ביטוי רגולרי (CWE-190)
מוצר: GitLab CE/EE, רכיב CI/CD Regular Expression Compiler
גרסאות מושפעות: מ-19.2 עד 19.2.8, מ-19.3 עד 19.3.5, ומ-19.4 עד 19.4.2, לא כולל המתוקנות
גרסה מתוקנת: 19.2.8, 19.3.5, 19.4.2
ניצול בפועל: לא, ואינה מופיעה ברשימת ה-KEV של CISA
ציר זמן
24 בספטמבר 2026: NVD מפרסמת את CVE-2026-93577, גלישת מספר שלם באותו קומפיילר, בציון 9.9. התיקון נכנס ב-19.2.7, 19.3.3 ו-19.4.1.
12 באוקטובר 2026: GitLab משחררת עדכון חירום לגרסאות 19.2.8, 19.3.5 ו-19.4.2. הבאה אחריה בציון באותו עדכון קיבלה 8.7.
13 באוקטובר 2026: NVD מפרסמת את הרשומה בציון 10.0, עם אותו CWE-190. היא אינה ברשימת ה-KEV, ו-GitLab לא מדווחת על ניצול.
איך הניצול עובד
הניצול מתחיל בתבנית שהתוקף מכניס לקובץ תצורה של CI/CD. מהרגע שהערך מתהפך, הקומפיילר עובד על סמך מספר שגוי ונגרר לפעולה על זיכרון מחוץ לגבולות שהוא עצמו חישב, ומשם הדרך להרצת קוד פתוחה.
לא ברור איך תוקף בלי חשבון מגיע לשם מלכתחילה. GitLab כתבה שהניצול אפשרי "בתנאים מסוימים" ולא פירטה אילו, והרשומה הטכנית של הבאג לא נפתחה לציבור. בגרסה הקודמת היא כן אמרה שנדרש משתמש מאומת.
ניתוח ציון ה-CVSS
ציון CVSS: 10.0
ההפרש בין החולשה הזאת לקודמתה מצטמצם למטריקה אחת: שם נדרש משתמש מאומת, כאן לא נדרשות הרשאות בכלל. זה מה שמעלה אותו באג מ-9.9 ל-10, ובפועל כל מי שיכול לפנות לשרת ברשת הוא תוקף פוטנציאלי.
איפה למצוא Proof of Concept (PoC)
ל-CVE-2026-97229 לא פורסם PoC פומבי ואין גם ניתוח טכני מפורט: הרשומה של הבאג והדיווחים דרך ה-bug bounty לא נפתחו לציבור. ההפניה הזמינה היא דף עדכון האבטחה של GitLab, שמזהה את הרכיב בשמו ומזכה את joaxcar, שדיווח דרך HackerOne.
אותו קומפיילר קיבל שני תיקונים בשלושה שבועות, והשני הוריד את דרישת ההרשאות לאפס. ברשימת ה-KEV כבר יושבת חולשה אחרת ב-GitLab, CVE-2026-85706, מ-11 בספטמבר. מי שמריץ GitLab על שרת פרטי, הגרסאות הן 19.2.8, 19.3.5 ו-19.4.2.
תגובות