כשמשתמש בלינוקס משנה את השם המלא שרשום עליו במערכת, הפעולה נוגעת בקובץ המשתמשים המשותף של המכונה. ברשומה הזאת, הפונקציה chfn בספריית libuser לא סיננה כראוי את מה שהמשתמש הקליד שם, ותו של שורה חדשה שעבר דרכה מספיק כדי להשאיר את הקובץ /etc/passwd משובש. הציון שנקבע לחולשה הוא 2.1 מתוך 10, הנזק שהרשומה מייחסת לה הוא השבתה בלבד, והיא אינה מסומנת כמנוצלת בפועל.

מה החולשה?

הקובץ /etc/passwd בנוי בצורה פשוטה: שורה אחת לכל משתמש, ובכל שורה שדות שמופרדים בנקודתיים. אחד מהשדות האלה, GECOS, הוא השדה החופשי שבו נרשמים פרטים כמו השם המלא, וזה השדה שהפקודה chfn מאפשרת למשתמש לערוך בעצמו.

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

libuser אכן סיננה, אבל לא את הכול. הרשומה קוראת לזה רשימת חסימה לא שלמה: המנגנון פסל חלק מהתווים הבעייתיים והחמיץ את תו השורה החדשה. זה ההבדל בין סינון שמגדיר מה מותר לבין סינון שמנסה למנות מה אסור, וברשומה הסוג מסומן CWE-20, אימות קלט לקוי. התוכנית שמגיעה לספרייה בהקשר הזה היא userhelper, מחבילת usermode.

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

מי מושפע?

הרשומה מציינת את libuser בגרסאות שקודמות ל-0.56.13-8, ואת ענף 0.60 בגרסאות שקודמות ל-0.60-7. ברשימה המפורטת שלה מופיעות הגרסאות 0.56.13-5 ומטה, ובענף החדש 0.60-1 עד 0.60-6. היצרן שרשום ברשומה הוא Red Hat.

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

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

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

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

מה שכן, הרשומה עצמה אינה שקטה. היא פורסמה ב-11 באוגוסט 2015 ועודכנה שוב ב-17 ביוני 2026, יותר מעשר שנים אחר כך. ברשומות בגיל כזה עדכון מאוחר יכול לנבוע מעבודת תחזוקה על הנתונים, ולא בהכרח משינוי במצב בשטח.

מה עושים?

1. עדכנו את libuser דרך מנהל החבילות של ההפצה, וגם את usermode, מפני ש-userhelper שמשתמש בספרייה מגיע ממנה. המספרים שצריך להגיע אליהם הם 0.56.13-8 בענף הישן, ו-0.60-7 בענף 0.60.

2. במערכות Red Hat העדכון מתפרסם בהודעת האבטחה RHSA-2015-1482.

3. בפדורה פורסמו שתי הודעות חבילה נפרדות, אחת מיולי 2015 ואחת מאוגוסט.

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

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