החולשה נמצאה ב-snap-confine, רכיב פנימי של מערכת snapd של Canonical, שאחראית להריץ אפליקציות מסוג snap ב-Ubuntu. הבאג אפשר למשתמש מקומי רגיל להשיג הרשאות מנהל מלאות (root). נכון לעדכון האחרון אין דיווח על ניצול בפועל.

מה החולשה?

snapd היא מערכת שמתקינה ומריצה אפליקציות ארוזות בשם snap, בעיקר בהפצת Ubuntu. כדי לבודד כל אפליקציה בסביבה מאובטחת, snapd משתמש ברכיב בשם snap-confine, שמקבל הרשאות מיוחדות כדי לבנות את סביבת ההרצה.

החולשה נובעת מכשל באופן שבו נבנים גבולות ההרשאה כאשר הרכיב רץ עם קבוצת יכולות (capabilities) מוגבלת. בגלל הכשל, משתמש מקומי לא מורשה יכול לעקוף את ההגבלות ולהריץ קוד עם הרשאות מנהל.

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

מי מושפע?

מושפעות מערכות שמריצות snapd עם snap-confine שהוגדר במצב set-capabilities, בשונה מהתצורה הרגילה של set-uid-root. זו תצורה מסוימת, כך שלא כל מערכת Ubuntu חשופה, אבל snapd עצמו מותקן כברירת מחדל ברוב גרסאות Ubuntu.

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

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

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

מה עושים?

עדכנו את חבילת snapd. במערכות Ubuntu הריצו sudo apt update ואז sudo apt install --only-upgrade snapd. אפשר לבדוק את הגרסה המותקנת עם הפקודה snap version.

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

אם אינכם משתמשים ב-snap כלל, אפשר לשקול להסיר את snapd מהמערכת, אך עשו זאת רק אם אתם מבינים אילו אפליקציות תלויות בו.