חזרה

Alpine Linux בונה מחדש את GitLab לאחר ניסיון ניצול CVE-2026-97229
SiTech AI Team3 דק׳ קריאה

Alpine Linux בונה מחדש את GitLab לאחר ניסיון ניצול CVE-2026-97229

Alpine Linux מדווחת שתוקף ניסה לנצל פגיעות קריטית ב-GitLab, CVE-2026-97229, ב-20 וב-21 באוקטובר. המופע נבנה מחדש, הסיסמאות אופסו, ולא נמצאה מניפולציה ב-aports או בשחרורים.

Alpine Linux מסרה שתוקף ניסה לנצל פגיעות קריטית ב-GitLab, CVE-2026-97229, במופע GitLab שלה ב-20 וב-21 באוקטובר. המופע רץ על GitLab 19.3.4 ללא התיקון מה-12 באוקטובר. Alpine לא מצאה ראיות להצלחה אך לא יכלה לשלול זאת, ולכן בנתה את המופע מחדש מאפס ואיפסה את כל הסיסמאות.

הפגיעות וההתקפה

CVE-2026-97229 היא פגיעות קריטית, CVSS 10.0, באופן שבו GitLab מעריך ביטויים רגולריים בתצורת CI. הבאג הבסיסי הוא ב-Onigmo, מנוע הביטויים הרגולריים המובנה ב-Ruby. GitLab פרסמה שחרורים מתוקנים ב-12 באוקטובר, אך התיקון הוא סדרת טלאים ל-Ruby ש-GitLab מאגדת. Ruby במעלה הזרם (upstream) הפיצה את התיקון ב-23 באוקטובר ב-Ruby 3.3.13, 3.4.12 ו-4.0.9. לאחר ש-CVE פורסמה ב-13 באוקטובר, Alpine שדרגה בטעות ל-19.3.4 במקום ל-19.3.5 המתוקנת.

ב-20 וב-21 באוקטובר, חשבון שנרשם זה עתה שלח תצורות CI מתוכננות למופע. כתוצאה מכך קרסו תהליכי worker של GitLab שמונה פעמים. בארבע התרסקויות, התוקף התקדם חלקית בניצול וכשל בשלב הבא. התוקף גם הוריד את תמונת המכולה של GitLab, מה שמרמז על כוונון הניצול ל-build המדויק. Alpine לא מצאה ראיות שקוד רץ בשרת, אך לא יכלה לשלול זאת.

למה השדרוג לא תיקן זאת

שדרוג ל-GitLab 19.3.6 ב-22 באוקטובר לא תיקן את הפגיעות, מכיוון שהתיקון הוא טלאי Ruby החל רק בחבילות הרשמיות של GitLab. תמונת Alpine השתמשה ב-Ruby סטנדרטי, ולכן לא קיבלה את הטלאי. מפעילים שמשתמשים ב-Ruby משלהם צריכים 3.3.13, 3.4.12, 4.0.9 או גרסה מאוחרת יותר. משתמשי alpinelinux/gitlab צריכים למשוך שוב alpinelinux/gitlab:19.3.6; התמונה שפורסמה ב-27 באוקטובר מכילה Ruby 3.3.13. תמונות 19.3.6 קודמות וכל התגיות הישנות יותר פגיעות.

בדיקות וחשיפה אפשרית

Alpine אומרת ש-aports, חבילות והשחרורים מה-21 באוקטובר לא שונו. שחרורי ה-stable מה-21 באוקטובר הם 3.21.9, 3.22.7, 3.23.7 ו-3.24.3. חבילות שנבנו מ-20 עד 24 באוקטובר הגיעו מ-commits של aports שאומתו מול רשומות מחוץ ל-GitLab. לא נחשפו מפתחות חתימה, ו-Alpine לא מצאה קבצים, מפתחות, hooks או תהליכים בלתי צפויים.

Alpine עדיין לא יכולה להיות בטוחה, מכיוון שניצול מוצלח לא היה משאיר התרסקות או עקבות ביומני הווב. חלק מיומני יום ההתקפה אבדו, כולל יומני משימות רקע ומערכת הקבצים של המכולה הישנה. לא בוצע רישום של חיבורי רשת יוצאים, וספק האחסון לא שומר אותם. אם ההתקפה הצליחה, נתונים שיכלו להיחשף כוללים כתובות דוא"ל של משתמשים, שמות וכתובות IP, hashes של סיסמאות, סודות 2FA, משתני CI/CD ואסימוני runner, אישורים ל-webhooks, אינטגרציות ו-mirrors של push, hashes של אסימוני גישה אישיים, ומאגרים פרטיים עם issues חסויים ו-merge requests.

בנייה מחדש ופעולות משתמשים

Alpine בנתה את המופע מחדש מאפס, איפסה את כל הסיסמאות והחליפה את מפתחות הסוד של GitLab. GitLab נבדק לפני פתיחה מחדש. כאשר יחזור, על המשתמשים להגדיר סיסמה חדשה באמצעות 'שכחת את הסיסמה?' בדף ההתחברות. מי שעשה שימוש חוזר באותה סיסמה במקום אחר צריך לשנות אותה שם; Alpine ראתה ניסיונות התחברות אוטומטיים עם סיסמאות שדלפו מאתרים אחרים. שאלות ניתן לשלוח ל[email protected].

Alpine גם משנה את התהליך שלה: המופע שנבנה מחדש רץ על Ruby עם התיקון; שחרורי אבטחה קריטיים של GitLab צריכים להיות מיושמים תוך יום, עם בדיקות לטלאי Ruby או רכיבים אחרים; חיבורי רשת יוצאים וחיבורי מסד נתונים יירשמו, והיומנים יישמרו יותר מ-14 ימים; ותגיות שחרור ייחתמו. בזמן ש-GitLab סגור, mirrors של חבילות, cgit, ורשימות דיוור ו-IRC זמינים כרגיל.

מקורות: alpinelinux.org

SiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.