ציון 10 מתוך 10 אינו נפוץ, וזה מה שהרשומה הזאת נותנת לחולשה ב-GitLab. לפי התיאור, משתמש שאינו מזוהה כלל יכול בתנאים מסוימים להריץ קוד על שרת ה-GitLab, והשורש הוא חישוב שגוי בזמן הידור של ביטוי רגולרי מעוצב. הטווח המושפע מתחיל בגרסה 7.0.

מה החולשה?

ביטוי רגולרי הוא תבנית לחיפוש טקסט. הדרך שבה תוכנה מריצה תבנית כזאת אינה השוואה פשוטה של תו מול תו: היא מהדרת את התבנית למבנה פנימי שמייצג אותה, ומקצה לו זיכרון לפי גודל שהיא מחשבת מראש.

החישוב הזה נעשה במשתנה מספרי בגודל מוגבל. אם תבנית בנויה במיוחד מביאה את המספר לחרוג מהגודל שהמשתנה מחזיק, הוא אינו ממשיך לגדול אלא מתהפך לערך קטן, לפעמים אפילו שלילי. התוכנה מקצה אז אזור קטן בהרבה ממה שנדרש, וממשיכה לכתוב לתוכו את המבנה המלא. לכשל החישובי הזה קוראים integer overflow, גלישת מספר שלם, והרשומה מסמנת אותו CWE-190.

הרשומה אומרת שהתוצאה היא הרצת קוד שרירותי על השרת, ומוסיפה שזה קורה בתנאים מסוימים. אילו תנאים, היא אינה מפרטת. ההסתייגות הזאת מופיעה בתיאור המקורי ולא נוספה כאן, ושווה להשאיר אותה במקומה.

מה שהווקטור כן אומר במלואו הוא מה נדרש מהתוקף, והתשובה היא כלום: גישה מהרשת, בלי הרשאות, בלי מעורבות של משתמש, ומורכבות תקיפה נמוכה. בנוסף הוא מסמן חריגה מגבולות הרכיב הפגיע עצמו.

זה השילוב שמייצר 10, ואין בו מקום לפרשנות.

מי מושפע?

שתי המהדורות, GitLab CE ו-GitLab EE, בטווח שמתחיל ב-7.0.

הגרסאות שהתיקון נכנס בהן הן 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ו-19.5.1. כל גרסה שקודמת לאחת מאלה באותו קו נחשבת מושפעת, וזה בפועל אומר כל התקנה שלא עודכנה בימים האחרונים.

ההבחנה שחשובה כאן היא מי אחראי על העדכון. GitLab הוא המקום שבו יושב קוד המקור של הארגון, ולעיתים גם פרטי האימות של תהליכי ההקמה האוטומטיים שלו. מי שמריץ התקנה עצמאית על שרת משלו הוא זה שצריך להתקין את התיקון בעצמו. מי שעובד מול השירות המנוהל של GitLab אינו מתקין כלום, והעדכון באחריות החברה.

האם מנוצלת בפועל?

בקטלוג החולשות המנוצלות בפועל של CISA, סוכנות הסייבר האמריקאית, אין לה רשומה. לא ידוע על ניצול.

ברשימת המקורות יש פרט שמסביר למה. לצד הודעת השחרור של GitLab מופיע שם דיווח ב-HackerOne, הפלטפורמה שדרכה חברות מקבלות דיווחי חולשות מחוקרים חיצוניים. כלומר החולשה הגיעה דרך דיווח מסודר, ולא מתוך חקירה של תקיפה שהתרחשה.

ובכל זאת, חולשה בציון 10 במוצר מוכר היא מהדברים שנבדקים מהר אחרי שהם מתפרסמים. הרשומה עלתה ל-NVD ב-22 באוקטובר 2026, והפער בין לא ידוע ובין ידוע עשוי להיות קצר.

מה עושים?

בררו את הגרסה שמותקנת אצלכם, והשוו אותה לרשימה שלמעלה לפי הקו שאתם נמצאים בו. ההבדל בין 19.4.2 ל-19.4.3 הוא כל ההבדל שיש כאן.

עדכנו לגרסה שמתקנת את הקו הזה: 18.11.13 בקו 18.11, או 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ו-19.5.1 בקווים של 19. הודעת השחרור של 19.5.1 היא המקום שבו GitLab מרכז את פרטי העדכון.

אם העדכון אינו יכול לקרות עכשיו, הקטינו מי יכול להגיע לשרת. החולשה אינה דורשת חשבון, ולכן התקנה שחשופה לאינטרנט חשופה לכל מי שמגיע אליה. הגבלה לרשת הארגונית או לחיבור VPN משנה כאן את התמונה.

ואם ההתקנה שלכם הייתה פתוחה לאינטרנט בגרסה מושפעת, אל תסתפקו בעדכון. בדקו את יומני השרת לתקופה שלפניו, והחליפו פרטי אימות ומפתחות שיושבים על המכונה הזאת.