החולשה הזאת יושבת ב-mod_http2, המודול שמאפשר לשרת ה-HTTP של Apache לדבר בגרסה השנייה של פרוטוקול HTTP. היא קיבלה ציון 9.8 מתוך 10, ולפי ההודעה היא נוגעת לכל הגרסאות מ-2.4.0 ועד 2.4.68. נכון לעדכון האחרון אין ידיעה על ניצול שלה בשטח.

מה החולשה?

ההבדל המעשי בין HTTP/2 לגרסה שלפניו הוא שחיבור אחד נושא כמה בקשות במקביל במקום אחת בכל פעם. זה מה שהפך את הפרוטוקול למהיר יותר, וזה גם מה שמסבך את העבודה בתוך השרת: במקום לטפל בבקשה, לסיים ולהתפנות לבאה, הרכיב מטפל בכמה דברים שמתקדמים יחד.

כאן נכנס לתמונה החוצץ. ה-session, מבנה הנתונים שמייצג את החיבור, מחזיק שטח זיכרון זמני אחד בשם bbtmp, שמשמש לעיבוד נתונים לפני העברתם הלאה. לפי ההודעה, אותו שטח משותף יכול להיכנס לשימוש כפול: עיבוד אחד עדיין עובד עליו כשעיבוד שני נכנס ומשתמש בו גם. למצב שבו רכיב נקרא מחדש לפני שסיים את הקריאה הקודמת קוראים re-entrancy.

התוצאה היא שימוש בזיכרון אחרי שחרורו, CWE-416 בסיווג הרשמי: צד אחד משחרר או מאפס את החוצץ, הצד השני ממשיך לקרוא ולכתוב לשם כאילו הוא עוד שלו. משם ההתנהגות של השרת תלויה במה שנמצא באותו אזור באותו רגע, וזה בדיוק מה שתוקף שמנסח את רצף הבקשות שלו מנסה לקבוע.

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

מי מושפע?

מושפעות גרסאות 2.4.0 עד 2.4.68 של שרת ה-HTTP של Apache. בפועל זה כמעט כל התקנה שלא עודכנה בימים האחרונים, כי הטווח מתחיל בראשית ענף 2.4.

התנאי המעשי הוא שמודול ה-HTTP/2 פעיל. HTTP/2 מופעל היום כברירת מחדל בחלק ניכר מהתקנות, בעיקר באתרים שעובדים ב-HTTPS, ולכן ההנחה הסבירה לגבי שרת ישראלי טיפוסי היא שהמודול כן טעון. אם הוא אינו טעון, החולשה הזאת אינה נוגעת לכם, ושווה לוודא זאת ולא להניח.

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

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

מה עושים?

בדקו תחילה את הגרסה, בפקודה httpd -v או apache2 -v. אם היא בטווח 2.4.0 עד 2.4.68, עברו לגרסה שיצאה אחרי 2.4.68.

בדקו אחר כך אם המודול בכלל טעון, בפקודה httpd -M או apache2ctl -M. אם http2_module מופיע ברשימה, וההגדרה Protocols כוללת h2 או h2c, המודול בשימוש אצלכם וכדאי להקדים את העדכון. אם אינכם נזקקים ל-HTTP/2, השבתת המודול היא דרך להוריד את החשיפה עד שתגיעו לשדרוג, אבל היא תאט אתרים שכן נהנים ממנו, ולכן זו החלטה ולא ברירת מחדל.

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