המשך הצפה, סדרה של פגיעויות ביישומי HTTP/2

פגיעות

אם מנוצלים, פגמים אלה יכולים לאפשר לתוקפים לקבל גישה לא מורשית למידע רגיש או לגרום לבעיות בדרך כלל

לאחרונה פורסם מידע על סדרה של פגיעויות המשפיעות על מספר יישומים של פרוטוקול HTTP/2, ביניהם הפופולריים ביותר, כולל Apache httpd, Apache Traffic Server, בין היתר.

נקרא בשם "המשך הצפה", שיטת התקפה זו יכולה לכוון לשרתים התומכים ב-HTTP/2.0 ויש לו פוטנציאל למצות את הזיכרון, להפסיק את עיבוד הבקשות, או לגרום לעומס מעבד גבוה, להאט את עיבוד הבקשות.

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

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

שיטת ההתקפה "המשך המבול" מבוסס על שליחת זרם רציף של מסגרות CONTINUATION מבלי להגדיר את הדגל END_HEADERS, מה שגורם לשליחה המונית של כותרות לשרת ועלול למצות את הזיכרון הזמין לתהליך. בנוסף, כדי ליצור עומס מעבד גבוה יחד עם מיצוי הזיכרון, תוקף יכול להשתמש בדחיסה של התוכן של מסגרות CONTINUATION באמצעות פורמט HPACK, הדורש חישובים לצורך ניתוח.

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

הצפה מתמשכת מסוכנת במיוחד עבור משתמשי Node.js (CVE-2024-27983), מכיוון שיישום זה עלול להיכשל בקבלת רק מספר פריימים שנשלחו על ידי תוקף. עקב תנאי המירוץ ב-Node.js, תוקף יכול לגרום לקריסה על ידי סגירת חיבורים תוך שליחת זרם כותרת לא שלם.

להלן רשימה של פגיעויות שזוהו במסגרת המימושים השונים:

  • CVE-2024-27983 (Node.js): תוקף יכול להפוך את שרת ה-HTTP/2 של Node.js ללא זמין על-ידי שליחת מספר קטן של מנות מסגרת HTTP/2 עם כמה מסגרות HTTP/2 בתוכם, מה שעלול לגרום למצב של מירוץ.
  • CVE-2024-27919 (שליח): Codec oghttp של Envoy אינו מאפס בקשה כאשר חריגה ממגבלות מפת הכותרות, מה שמאפשר לתוקף לשלוח רצף של מסגרות CONTINUATION מבלי להגדיר את הסיביות END_HEADERS, מה שגורם לצריכת זיכרון בלתי מוגבלת.
  • CVE-2024-2758 (Tempesta FW): מגבלות קצב FW של Tempesta אינן מופעלות כברירת מחדל או מוגדרות באופן שגוי, מה שעלול להוביל לצריכת משאבים מוגזמת או לטיפול לא נכון בבקשות HTTP.
  • CVE-2024-2653 (amphp/http): יאסוף מסגרות של CONTINUATION HTTP/2 לתוך מאגר לא מוגבל ולא יבדוק את מגבלת גודל הכותרת עד שהוא יקבל את הדגל END_HEADERS, מה שעלול לגרום לקריסת OOM.
  • CVE-2023-45288 (עבור net/http ו-net/http2): יישומים אלה אינם מגבילים את מספר המסגרות של CONTINUATION הנקראות עבור בקשת HTTP/2, מה שעלול לגרום לצריכת CPU מופרזת בעת עיבוד קבוצה גדולה של כותרות.
  • CVE-2024-28182 (nghttp2): מימוש שמשתמש בספריית nghttp2 ימשיך לקבל מסגרות CONTINUATION ולא יחזור לאפליקציה כדי לאפשר נראות של מידע זה לפני שהוא מאפס את הזרם, מה שיכול להוביל ל-DoS.
  • CVE-2024-27316 (Apache Httpd): תוקף יכול לשלוח מסגרות HTTP/2 CONTINUATION ללא הדגל END_HEADERS שהוגדר לזרם רציף למימוש Apache Httpd, אשר לא יסיים כראוי את הבקשה מוקדם.
  • CVE-2024-31309 (שרת תנועה של Apache): מתקפת DoS עלולה לגרום ל- Apache Traffic Server לצרוך יותר משאבים בשרת.
  • CVE-2024-30255 (שליח): ערימת פרוטוקול ה-HTTP/2 ב-Envoy גרסאות 1.29.2 או מוקדמות יותר חשופה לתשישות מעבד עקב הצפה של מסגרות CONTINUATION.

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.