פגיעות CVSS 10 ב-GitLab: המשמעות של "לא מאומת" תלויה במי שיכול ליצור פרויקטים בשרת שלך
אם אתה מפעיל GitLab בהתקנה עצמית (self-managed) בגרסה מהענפים 19.2, 19.3 או 19.4, כדאי לתכנן עדכון עוד היום. ב-12 באוקטובר 2026 פרסמה GitLab גרסאות שמתקנות 24 פגיעויות. אחת מהן מדורגת CVSS 10.0: ביטוי רגולרי שנבנה במיוחד בהגדרת CI/CD עלול לגרום להרצת קוד על שרת ה-GitLab.
בכותרות נכתב שמשתמש לא מאומת יכול להריץ קוד בשרת. ההודעה של GitLab זהירה יותר. לפי ההודעה, הדבר אפשרי "בתנאים מסוימים", אך היא אינה מפרטת מהם. לפי The Hack Academy, דרך הניצול ש-Rapid7 הדגימה בשחזור שלה תלויה, בין השאר, במי שיכול ליצור פרויקטים ולכתוב הגדרות CI/CD בשרת שלך.
מה GitLab מפרסמת
לפי הודעת התיקון של GitLab, ב-12 באוקטובר 2026 שוחררו הגרסאות 19.4.2, 19.3.5 ו-19.2.8 של Community Edition ושל Enterprise Edition. GitLab ממליצה בתוקף לשדרג מיד כל התקנה עצמית לאחת מהגרסאות האלה. לפי ההודעה, GitLab.com כבר פועל בגרסה מתוקנת, ולקוחות GitLab Dedicated אינם נדרשים לעשות דבר.
הפגיעות המרכזית היא CVE-2026-97229. ההודעה מגדירה אותה כגלישת מספר שלם (integer overflow) בקומפיילר הביטויים הרגולריים של CI/CD. לפי ההודעה, בתנאים מסוימים הפגיעות הייתה עלולה לאפשר למשתמש לא מאומת להריץ קוד שרירותי על שרת ה-GitLab באמצעות ביטוי רגולרי שנבנה במיוחד בהגדרת CI/CD. ההודעה מייחסת את הפגיעות לבדיקה לא מספקת של תקינות הביטויים הרגולריים.
- גרסאות מושפעות: CE/EE, מ-19.2 עד לפני 19.2.8, מ-19.3 עד לפני 19.3.5, ומ-19.4 עד לפני 19.4.2.
- דירוג: Critical, CVSS 10.0. לפי הווקטור שפורסם, אפשר לנצל את הפגיעות דרך הרשת, מורכבות התקיפה נמוכה, ולא נדרשות הרשאות או פעולה מצד משתמש.
- מדווח: joaxcar, דרך תוכנית ה-bug bounty של GitLab ב-HackerOne.
פרטים נוספים בהודעה שחשובים לתכנון העדכון:
- 19.3.5, לא 19.3.4. לפי ההודעה, בגרסה 19.3.4 היה באג שפגע בדפי merge request כשאינטגרציית Ona מופעלת. הבאג תוקן ב-19.3.5.
- שאר התיקונים. מלבד הפגיעות הקריטית, ההודעה מונה חמש פגיעויות בדירוג High. ביניהן XSS בהדגשת תחביר (8.7) ופגיעות שמאפשרת למשתמש בתפקיד Developer להריץ pipelines על ענפים מוגנים ללא הרשאה (8.5). לפי ההודעה, שלוש פגיעויות בדירוג Medium מאפשרות למשתמש לא מאומת לקרוא הערות חסויות או תוכן של work items שאינו אמור להיות גלוי לו.
- טלאים ל-Ruby. ברשימת תיקוני הבאגים של כל שלוש הגרסאות מופיעים טלאים לביטויים רגולריים ב-Ruby 3.3 וב-3.4. ההודעה אינה קושרת אותם במפורש ל-CVE.
- הפרטים המלאים בעוד 90 יום. לפי מדיניות GitLab, ה-issues שמתארים כל פגיעות נחשפים 90 יום לאחר שחרור הגרסה שבה תוקנה.
- השבתה. הגרסאות כוללות מיגרציות של מסד הנתונים. בהתקנה על שרת יחיד העדכון יגרום להשבתה, משום שהמיגרציות צריכות להסתיים לפני ש-GitLab עולה. בהתקנה מרובת שרתים אפשר לעדכן ללא השבתה, בתהליך zero-downtime. גרסה 19.3.5 כוללת גם מיגרציות שרצות אחרי הפריסה.
ההודעה אינה מציעה פתרון עוקף זמני.
מה פירוש "לא מאומת" בפועל
GitLab אינה מסבירה מהם התנאים המסוימים. לפי The Hack Academy, חברת Rapid7 פרסמה ב-13 באוקטובר ניתוח משלה. לפי הדיווח, חוקרי Rapid7 שחזרו הרצת קוד על ה-image הרשמי של GitLab 19.4.1 Community Edition, אך אותו קלט לא הביא להרצת קוד ב-image הרשמי של 19.4.2. לפי Rapid7, הקוד רץ בתהליך ה-Ruby כמשתמש git של GitLab.
לפי The Hack Academy, דרך הניצול שהודגמה דרשה מהתוקף שליטה בהגדרת ה-CI/CD של פרויקט ציבורי, לצד תנאים נוספים הנוגעים לפרויקט עצמו. Rapid7 ציינה שבשרת שבו ההרשמה פתוחה ומשתמשים חדשים רשאים ליצור פרויקטים, גם חשבון שנפתח זה עתה מספיק כדי לעמוד בתנאי הזה. במילים אחרות, "לא מאומת" מתייחס כאן לכל מי שיכול לפתוח חשבון בשרת שלך. לפי הדיווח, Rapid7 תיארה דרך ניצול אחת ולא טענה שאין אחרות.
למי שאינו יכול לעדכן מיד, Rapid7 הציעה להגביל גישה אנונימית לפרויקטים ציבוריים ולמנוע ממשתמשים לא מהימנים ליצור פרויקטים ציבוריים או לכתוב בהם. לפי The Hack Academy, Rapid7 הדגישה שהצעדים האלה מצמצמים את החשיפה רק לדרך הניצול שהדגימה. הם אינם מתקנים את הקומפיילר הפגיע.
מה הסיקור לא מדייק
הכותרת של The Hacker News. כותרת הכתבה היא "GitLab Patches CVSS 10.0 Flaw That Could Let Unauthenticated Users Run Server Code". גוף הכתבה מצטט את ההודעה במלואה, כולל הסייג "בתנאים מסוימים", אבל הכותרת משמיטה אותו. מי שקורא רק את הכותרת עלול להסיק שכל מי שמגיע לשרת GitLab פגיע יכול להריץ בו קוד, ללא קשר להגדרות השרת. ההודעה של GitLab אינה אומרת זאת. לפי השחזור של Rapid7, דרך הניצול שהודגמה תלויה בהגדרות השרת.
מספר הפגיעויות בדירוג High. הכתבה של The Hacker News מציינת ששלוש פגיעויות בדירוג High תוקנו לצד הפגיעות הקריטית. בטבלה של GitLab מופיעות חמש. שתי הפגיעויות הנוספות נוגעות ל-Enterprise Edition בלבד: CVE-2026-81839 (מדיניות הרצת pipelines מתוזמנת, 7.7) ו-CVE-2026-96893 (הזרקת תוכן להוראות של סוכן AI ב-Duo Agent Platform, 7.3). מי שמפעיל EE צריך להביא בחשבון גם אותן.
מה לא קרה
לפי The Hack Academy, אף מקור שנבדק לא דיווח על ניצול של CVE-2026-97229 בפועל. Rapid7 כתבה שנכון ל-13 באוקטובר אין עדות מאומתת לניצול בשטח. Cybersecurity Dive דיווח ב-12 באוקטובר שלא ברור אם תוקפים התחילו לנצל את הפגיעות, ושהיא לא נוספה לקטלוג KEV של CISA נכון לאותו בוקר. הנתונים האלה נכונים רק למועד פרסומם. לפי The Hack Academy, השחזור של Rapid7 נעשה במעבדה שלה, והקוד לא פורסם.
השחזור עצמו מוגבל. הוא מראה שדרך ניצול אחת עובדת, לא שהיא היחידה. כל עוד הפרטים המלאים לא נחשפו, נותרות שאלות פתוחות. לפי The Hack Academy, לא ידוע אם יש דרכי ניצול נוספות, מהי סיבת השורש המלאה ואילו סימנים אמינים יכולים להעיד על ניצול. ציון CVSS מבטא את חומרת הפגיעות, לא את מידת החשיפה של השרת שלך. החשיפה בפועל תלויה במי שיכול ליצור פרויקטים בשרת ובזהות המשתמשים שהגדרות ה-CI/CD שלהם מעובדות בו.
אל תבלבל בין הפגיעות הזו לפגיעויות קודמות ב-GitLab. The Hacker News מזכיר את CVE-2026-85706, פגיעות קודמת בדירוג 10.0 שלפי הכתבה נעשו ניסיונות לנצל אותה בשטח בתוך שעות מהחשיפה. לפי הסיקור העיתונאי, זו פגיעות אחרת, עם סיבה וטווח גרסאות אחרים. מה שקרה בעקבות חשיפתה אינו מלמד על CVE-2026-97229, אבל מזכיר כמה מעט זמן עשוי לעבור בין חשיפה לניסיונות ניצול.
מה זה אומר על השרת שלך
עדכן לגרסה המתאימה לענף שלך
עדכן ל-19.2.8, ל-19.3.5 או ל-19.4.2. בענף 19.3, עדכן ל-19.3.5 ולא ל-19.3.4. אם אתה מפעיל שרת יחיד, תכנן חלון השבתה למיגרציות. לאחר העדכון, בדוק שהגרסה שרצה בפועל היא הגרסה המתוקנת.
בדוק מי יכול להירשם וליצור פרויקטים
לפי השחזור של Rapid7, השאלה המכרעת היא אם אדם זר יכול לפתוח חשבון ולכתוב הגדרת CI/CD בפרויקט ציבורי. בשרת של צוות פנימי בדרך כלל אין סיבה להשאיר הרשמה פתוחה. בדוק אם ההרשמה פתוחה, אם משתמשים חדשים רשאים ליצור פרויקטים ומי רשאי ליצור פרויקטים ציבוריים. יש להגביל את האפשרויות האלה גם אחרי העדכון, משום שהן קובעות באיזו מהירות יוכל כל אדם באינטרנט לנצל את הפגיעות הבאה ב-CI/CD.
אם ההרשמה הייתה פתוחה, בדוק מה נוצר
בשרת שבו ההרשמה הייתה פתוחה בזמן שהגרסה הפגיעה רצה, כדאי לעבור על החשבונות והפרויקטים הציבוריים שנוצרו לאחרונה ועל הגדרות ה-CI/CD שלהם. אלה אינם סימני ניצול שפורסמו: לפי הדיווחים, סימנים כאלה עדיין אינם ידועים. זו נקודת התחלה סבירה לבדיקה.
הגבל את מה ששרת ה-GitLab יכול להגיע אליו
לפי Rapid7, הקוד רץ כמשתמש git. שרת GitLab זקוק לתעבורה יוצאת לגיטימית, למשל לצורך ייבוא מאגרים, webhooks ו-mirrors. מפה את היעדים שהשרת באמת צריך להתחבר אליהם, והגבל את הגישה לשאר היעדים בחומת האש. באותה חבילת תיקונים תוקנה גם פגיעות SSRF בייבוא מאגרים, שלפי ההודעה אפשרה להגיע למשאבים ברשת הפנימית. זו סיבה נוספת להפריד את שרת ה-GitLab מהרשת הפנימית ככל האפשר.
איך nuDefend עוזר
nuDefend רץ על שרת הלינוקס שלך ומפעיל שתי שכבות הגנה עצמאיות. בשכבת הרשת, תעבורה אל כתובות IP הידועות כזדוניות ומהן נחסמת בחומת האש של הליבה. הכתובות כוללות שרתי שליטה ובקרה של בוטנטים, סורקים פעילים ותשתיות של תוכנות זדוניות. בשכבת ה-DNS, דומיינים מסוכנים מנוטרלים בכל המערכת, כך שאף יישום בשרת אינו יכול לפתור אותם או להגיע אליהם. רשימות האיומים חתומות קריפטוגרפית ומתעדכנות אוטומטית.
בדאשבורד מוצגת ספירה של תעבורה יוצאת שנחסמה. ערך גבוה מאפס עשוי לשמש אזהרה מוקדמת לכך שמשהו בשרת ניסה ליצור קשר עם שרת חיצוני.
הפקודה nudefend expose מציגה כל שירות שמאזין בשרת ומי יכול להגיע אליו, מנקודת המבט של השרת עצמו. אם שירות שהיה פנימי בלבד נעשה נגיש מבחוץ, nuDefend מזהה את השינוי ומתריע עליו. אפשר לחסום פורט חשוף מהדאשבורד או משורת הפקודה, לאחר תצוגה מקדימה שמראה בדיוק מה ייחסם. אם המשתמשים בשרת ה-GitLab שלך נמצאים במספר מצומצם של מדינות, אפשר להשתמש גם בחסימת מדינות ולאפשר גישה רק מהמדינות שתבחר. פרטים נוספים נמצאים בתיעוד.
השורה התחתונה
CVE-2026-97229 מדורגת 10.0, ו-GitLab ממליצה לעדכן מיד. עדכן ל-19.2.8, ל-19.3.5 או ל-19.4.2. ההודעה מתנה את הניצול ב"תנאים מסוימים". לפי השחזור של Rapid7, דרך הניצול שהודגמה דורשת אפשרות לשלוט בהגדרת CI/CD בפרויקט ציבורי. לפי The Hack Academy, Rapid7 ציינה שבשרת שבו ההרשמה פתוחה ומשתמשים חדשים רשאים ליצור פרויקטים, גם חשבון שנפתח זה עתה מספיק לכך. אחרי העדכון, בדוק מי יכול להירשם וליצור פרויקטים בשרת שלך, והגבל את היעדים ששרת ה-GitLab יכול להגיע אליהם.
לפי Rapid7, קוד שמנצל את הפגיעות רץ על שרת ה-GitLab כמשתמש git. עם nuDefend, תעבורה מהשרת לכתובות ולדומיינים זדוניים ידועים נחסמת בחומת האש של הליבה. חסימת תעבורה יוצאת מוצגת בדאשבורד כאזהרה מוקדמת.