ב-Apache Struts, מסגרת עבודה בג'אווה שעליה בנויים לא מעט יישומי ווב ארגוניים, יש חולשה שמאפשרת לתוקף מרוחק להריץ קוד על השרת בלי להזדהות כלל. היא פורסמה עוד ב-2016, וב-8 באוקטובר 2026 צירפה אותה סוכנות הסייבר האמריקאית לרשימת החולשות שתוקפים מנצלים בשטח. הניצול תלוי בהגדרה אחת בתצורת היישום, וכאן נמצאת גם הבשורה הטובה.

מה החולשה?

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

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

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

מי מושפע?

לפי הרשומה, החולשה נוגעת ל-Struts בגרסאות 2.3.19 עד 2.3.20.2, 2.3.21 עד 2.3.24.1, ו-2.3.25 עד 2.3.28, וגם אז רק כאשר Dynamic Method Invocation מופעל. מופיע שם גם מוצר נוסף שמבוסס על המסגרת, Oracle Siebel eBilling.

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

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

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

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

מה עושים?

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

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

מי שמפעיל Oracle Siebel eBilling ימצא את התיקון בעדכון האבטחה של Oracle.

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