ארבע פגיעויות הרצת קוד ב-GitLab שפורסמו בחודש האחרון, שתיים מהן בציון CVSS 10.0, נובעות מאותו מקור: באגי זיכרון במנוע הביטויים הרגולריים Onigmo של Ruby. צוות Ruby פרסם תיקונים, והם רלוונטיים גם לכל יישום Ruby אחר.
| מזהים | CVE-2026-97229 (CVSS 10.0), CVE-2026-110264 (CVSS 10.0), ועוד שתי פגיעויות מ-23 בספטמבר בציון 9.9 (נדרש משתמש מחובר) |
| מוצר | Ruby (מנוע Onigmo) ו-GitLab |
| גרסאות מתוקנות | Ruby 4.0.9, 3.4.12, 3.3.13; GitLab 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13 |
| מנוצל בפועל | נכון ל-23 באוקטובר אף אחת מארבע הפגיעויות אינה ב-KEV של CISA |
| סטטוס תיקון | קיים. ל-Ruby 3.2 ומטה (סוף תמיכה) אין תיקון |
מה קרה
ביטוי רגולרי שנבנה בקפידה עלול לשחית זיכרון בשלב ההידור שלו, ובתנאים מסוימים להוביל להרצת קוד. החוקר joaxcar דיווח על כך דרך תוכנית הבאגים של GitLab, ובמקום לתקן כל CVE בנפרד תוקן שורש הבעיה ב-Ruby. GitLab כוללת Ruby מתוקן משלה, כך שעדכון GitLab מספיק.
הנקודה העדינה: צוות Ruby לא ביקש מזהי CVE משלו, לפחות בינתיים. סורקי פגיעויות שמתאימים רק רשומות CVE לגרסאות עלולים להחמיץ את הבעיה ביישומי Ruby שאינם GitLab.
נקודות לשים לב
- עדכן שרתי GitLab עצמאיים לאחת הגרסאות המתוקנות שברשימה, ובדוק את כללי הזיהוי ש-GitLab פרסמה לאיתור ניסיונות ניצול.
- ביישומי Ruby משלך, חפש קוד שמהדר קלט משתמש:
Regexp.new,Regexp.union,Regexp.compileאו שילוב משתנה בתוך ביטוי רגולרי. ביטויים שנכתבו על ידי המפתחים בלבד אינם מושפעים. - אם אי אפשר לעדכן, הפסק להדר ביטויים מקלט לא מהימן. לפי Ruby,
Regexp.timeoutומגבלת אורך אינם מגנים. - אם אתה על Ruby 4.0, גרסה 4.0.8 עדיין חשופה ל-CVE-2026-110264; נדרשת 4.0.9. בענף 3.2 ומטה הדרך היחידה היא מעבר גרסה.
מקורות: Ruby Security Advisory · The Hacker News

₿ אהבת את הפוסט?
אפשר לשלוח לי ביטקוין ישירות לכתובת שלי. סרקו את הקוד, או העתיקו את הכתובת:
bc1qsn043qmlv4ejxydeknkfm9u6e93e6tegmq9x85
שימו לב: העברה on-chain כרוכה בעמלת רשת שאינה תלויה בסכום, ולכן סכומים קטנים מאוד אינם כדאיים.