Brotli היא שיטת דחיסה שבעזרתה אתרים שולחים לדפדפן תוכן קטן יותר ממה שהוא בפועל, והמפענח שלה הוא הקוד שפורש את החומר הדחוס בצד המקבל. בגרסאות 1.0.3 עד 1.2.0, בכל מערכות ההפעלה, יש בו חולשה שמאפשרת לתוקף לא מזוהה לדרוס זיכרון בעזרת זרם דחוס שבנוי במיוחד לכך. הציון הוא 9.2 מתוך 10 בסולם CVSS 4.0, והגרסאות המתקנות הן 1.0.10, 1.1.1 ו-1.2.1.

מה החולשה?

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

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

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

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

מי מושפע?

הטווח שהרשומה נותנת הוא Brotli בגרסאות 1.0.3 עד 1.2.0, בכל הפלטפורמות. התיקון חולק לשלושה ענפים, 1.0.10, 1.1.1 ו-1.2.1, כך שמי שמעדכן צריך לדעת באיזה ענף הוא נמצא ולא רק לקחת את המספר הגבוה.

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

ורשימת המקורות של הרשומה מראה בדיוק את זה. התיקון מופיע בהודעות האבטחה של Node.js לאוקטובר 2026, והוא מופיע גם בהודעת העדכון של Debian. שני מוצרים שונים לגמרי שצריכים להוציא תיקון לאותה חולשה, כי שניהם נושאים את אותה ספרייה בתוכם.

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

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

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

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

מה עושים?

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

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

3. אם אתם מריצים שרתי לינוקס, התיקון מגיע דרך מנהל החבילות של ההפצה. ב-Debian הוא פורסם בהודעת ה-LTS, ובהפצות אחרות שווה לחפש את החבילה brotli או libbrotli ברשימת העדכונים הממתינים.

4. אם אתם מפתחים שמשלבים את Brotli ישירות, בדקו באיזה ענף אתם ועברו בהתאם: מ-1.0.x אל 1.0.10, מ-1.1.x אל 1.1.1, ומ-1.2.0 אל 1.2.1. בדקו גם עותקים של הספרייה שהועתקו לתוך הפרויקט במקום להגיע כתלות מוצהרת, כי אלה לא יופיעו בבדיקת התלויות הרגילה ולא יתעדכנו עם שאר הרשימה.