אתרים רבים בנויים היום כך שחלק מהקוד רץ בדפדפן וחלק על השרת, ו-React Server Components הוא המנגנון שמחבר בין השניים. הרשומה מתארת בו חולשה בציון 10, המקסימום בסולם: המטען שמגיע בבקשת HTTP אל endpoint של Server Function עובר שחזור לאובייקט בלי בדיקה, ומי ששולט במה שנשלח יכול לגרום לשרת להריץ קוד משלו עוד לפני שנשאל מי הוא. ב-5 בדצמבר 2025 נכנסה החולשה לקטלוג החולשות המנוצלות של CISA, יומיים אחרי הפרסום.

מה החולשה?

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

ב-React Server Components הנתיב הזה פתוח כלפי חוץ מעצם התכנון. Server Function היא פונקציה שרצה על השרת ונקראת מהדפדפן, ולכן קיים endpoint שמקבל את הקריאה ואת הפרמטרים שלה. לפי הרשומה, הקוד הפגיע מפרסר את המטען שמגיע בבקשה בצורה לא בטוחה, וזה מספיק.

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

והמילה שהרשומה בוחרת היא pre-authentication. לפני מסך ההתחברות, לא אחריו.

מי מושפע?

שתי רשימות, ושתיהן מופיעות ברשומה.

ב-React עצמו: גרסאות 19.0.0, 19.1.0, 19.1.1 ו-19.2.0, בחבילות react-server-dom-parcel, react-server-dom-turbopack ו-react-server-dom-webpack.

ב-Next.js, שנשען על אותו מנגנון: ענף 15.0 עד 15.0.5, ענף 15.1 עד 15.1.9, ענף 15.2 עד 15.2.6, ענף 15.3 עד 15.3.6, ענף 15.4 עד 15.4.8 וענף 15.5 עד 15.5.7. בכל ענף, המספר שמופיע כאן הוא הגרסה המתקנת.

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

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

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

הרשומה ב-NVD פורסמה ב-3 בדצמבר 2025, ויומיים אחר כך היא כבר בקטלוג. באותו יום פרסמו הודעות ייעודיות גם צוות React וגם Meta, והחולשה דווחה גם ברשימת התפוצה oss-security. בין המקורות מופיע גם פוסט של AWS.

מה עושים?

עדכנו. אם אתם על Next.js, לכו לגרסה המתקנת של הענף שלכם לפי הרשימה שלמעלה. אם אתם משתמשים ב-React Server Components ישירות, עדכנו את החבילות react-server-dom-parcel, react-server-dom-turbopack ו-react-server-dom-webpack מעבר לגרסאות שהרשומה מסמנת.

ההודעה של צוות React מ-3 בדצמבר 2025 היא ההסבר המפורט, וההודעה של Meta היא הודעת היצרן.

ולפני הכול, בדקו מה בכלל רץ אצלכם. זו חולשה בתלות ולא במוצר, ולכן היא אינה מופיעה ברשימת התוכנות המותקנות על השרת אלא בעץ התלויות של הפרויקט. הפקודה npm ls react next מציגה את הגרסאות שנמצאות שם בפועל, וזה לא תמיד מה שכתוב בקובץ package.json.

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