מפתחי PHP הודיעו היום בשעה 17:00 (MSK) על שחרור תיקוני חירום (8.5.12, 8.4.27, 8.3.36 ו-8.2.35) אשר יטפלו בשתי פגיעויות קריטיות. מומלץ לכל מנהלי שרתי PHP להתקין את התיקונים במערכות שלהם מיד לאחר שחרורם. פרטים רשמיים ייחשפו רק לאחר שהתיקונים יהיו זמינים, אך בהתבסס על מידע זמין לציבור, הפגיעויות הללו הן CVE-2026-109618 ו-CVE-2026-109619, אשר עלולות לאפשר ביצוע קוד מרחוק בכל שרת אינטרנט המפעיל סקריפטי PHP בתצורת ברירת המחדל. הבעיות משפיעות על כל הגרסאות החל מ-PHP 5.4.
פרצות אב טיפוס (1, 2) כבר הופיעו ברשת כדי לבחון פגיעות של המערכת. הערות הפריצה טוענות שהפגיעויות נגרמות על ידי גישה לזיכרון שכבר שוחרר במטפל מעקב אחר התקדמות הורדת הקבצים. שרת (session.upload_progress). ההתקפה אינה דורשת פונקציונליות העלאת קבצים באתר; הפעלה אוטומטית של מטפל התוכן "multipart/form-data" במתורגמן PHP מספיקה. ניצול מוצלח דורש קביעת פריסת זיכרון התהליך, שהיא ספציפית לכל בנייה (ניתן לפתור בעיה זו על ידי כפייה מוחלטת של הניצול באמצעות קיזוזים מחושבים מראש עבור חבילות מהפצות שונות).
כפתרון עוקף, יש הממליצים להגדיר את הפרמטר php.ini "session.upload_progress.enabled = off" (או "php_admin_flag[session.upload_progress.enabled] = off" ב-PHP-FPM), אך נציג פרויקט PHP, כמו גם מחבר אב הטיפוס הראשון של הניצול, טוענים שזה לא מספיק כדי לחסום את שתי הפגיעויות. ההערה עבור אב הטיפוס השני של הניצול מציינת כי בנוסף להגדרה php.ini שהוזכרה לעיל, נדרשת חסימה מוחלטת של בקשות עם סוג התוכן "multipart/form-data" כדי למנוע את ההתקפה מבלי להחיל את התיקון.
ב-Apache httpd, ניתן להשתמש בכלל הבא ב-mod_rewrite כדי לחסום בקשות מרובות חלקים:
RewriteCond %{HTTP:Content-Type} רב-חלקי [NC]
כלל כתיבה מחדש ^ — [F,L]
כדי לחסום ב-nginx:
אם ($http_content_type ~* "רב-חלקי") {
403 לחזור;
}
כדי לנעול את קאדי:
@multipart header_regexp סוג תוכן (?i) multipart
להגיב @multipart 403
עדכון: שוחררו תיקונים ל-PHP 8.5.12, 8.4.27, 8.3.36 ו-8.2.35, יחד עם פרטים על הפגיעויות הקריטיות שתוקנו. ניתוח מפורט של הפגיעויות ופתרונות עוקפים מומלצים רשמית זמין בידיעה נפרדת.
מקור: OpenNet.ru
