מספר פגיעויות התגלו ב-GNU Screen שאפשרו קבלת הרשאות root.

פגיעות

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

אחת מהן (CVE-2025-23395, הפגיעות המסוכנת ביותר) מאפשר לתוקף לקבל הרשאות רוט במערכות מושפעות (הפגיעות משפיעה רק על גרסה 5.0.0 של GNU Screen), כולל בהפצות כגון Fedora, Arch Linux, NetBSD, בין היתר. גרסאות אחרות כמו דביאן, אובונטו ו-RHEL, לעומת זאת, עדיין משתמשות בענף 4.x, שאינו פגיע לפגם הספציפי הזה.

CVE-2025-23395: הסלמה של הרשאות קריטיות

מוזכר כי הבעיה מתרחשת כאשר GNU Screen מופעל עם סיבית הבסיס setuid (מקרה של Arch ו-NetBSD), מאחרוהפונקציה logfile_reopen() מבוצעת לפני הורדת הרשאות, המאפשר למשתמש לתפעל את הרישום כדי לכתוב קבצים שרירותיים כ-root. בחווה טיפוסית, והתוקף מוחק את קובץ היומן המקורי ומחליף אותו בקישור סמלי. לקובץ מערכת. כשפותחים מחדש את הקובץ, Screen כותב אותו עם הרשאות root, מה שמאפשר לתוכן הזדוני להיכנס.

בעיה זו משפיעה על Screen 5.0.0 בעת הפעלה עם הרשאות setuid-root. הפונקציה logfile_reopen() אינה מסירה הרשאות בעת פעולה על נתיב שסופק על ידי המשתמש. זה מאפשר למשתמשים לא מורשים ליצור קבצים במיקומים שרירותיים עם בעלות root, בעלות הקבוצה (האמיתית) של המשתמש הקורא, ומצב קובץ 0644. כל הנתונים שנכתבים ל-Screen PTY יירשמו לקובץ זה. ניתן להשתמש גם בקבצים קיימים לרישום באופן זה: הנתונים יצורפו לקובץ המדובר, אך מצב הקובץ והבעלות יישארו ללא שינוי.

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

פגיעויות רלוונטיות אחרות

הביקורת, שבוצעה על ידי צוות האבטחה של SUSE Linux, זיהו גם כשלים חשובים אחרים:

  • CVE-2025-46802: בהפעלות מרובות משתמשים, תוקף יכול לקבל הרשאות קריאה וכתיבה גלובליות בהתקני TTY כגון /dev/pts/1, מה שמשפיע הן על ענפי 4.x והן על ענפי 5.x.
  • CVE-2025-46803: ענף 5.0 מגדיר הרשאות לא מאובטחות (0622) על התקני PTY, ומאפשר כתיבה על ידי כל משתמש.
  • CVE-2025-46804: דליפת מידע מאפשרת להסיק את קיומם של קבצים או ספריות באמצעות הודעות שגיאה בעת הגדרת המשתנה SCREENDIR.
  • CVE-2025-46805: מצב מרוץ בעת שליחת אותות SIGCONT ו-SIGHUP עלול לגרום למניעת שירות.

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

חוסר תחזוקה ותמיכה מצד SUSE

גילוי הפגיעויות הללו חשף בעיות עמוקות יותר בתחזוקת GNU Screen. לפי צוות SUSE, מתחזקי הפרויקט הנוכחיים אינם מבינים לחלוטין את בסיס הקוד וגם לא בעיות אבטחה, שאילצו אותם לפתח בעצמם תיקונים לחלק מהפגמים שהתגלו. הדוח נשלח למפתחים ב-7 בפברואר, אך לא ניתן היה לתקן את כל מערך הפגיעויות בתוך תקופת החסד המוסכמת של 90 יום.

מה לעשות אם משתמשים ב-GNU Screen?

משתמשי מערכות הכוללות את Screen 5.0.0 עם root setuid צריך לעדכן באופן מיידי לגרסה 5.0.1 או חזור זמנית לגרסה 4.x אם אין חבילות זמינות. כאמצעי להפחתת תופעות לוואי, ניתן גם להסיר את הסיבית setuid מקובץ ההפעלה של Screen:

sudo chmod u-s /usr/bin/screen

עם זאת, זה עשוי להשפיע על הפונקציונליות כגון שיתוף סשנים בין משתמשים. לבסוף, ראוי לציין שגרסה 5.0.1 שפורסמה לאחרונה מתקנת באגים אלה ואחרים וכעת זמינה בהפצות כמו Arch Linux ו-FreeBSD.

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