תיאור מטא: React2Shell (CVE-2025-55182) הוא RCE קריטי לפני אימות המשפיע על React Server Components ו-Next.js — תיקון מיידי, תצורות מחוזקות, הגנות קצה וזיהוי בזמן ריצה הם חיוניים. מדריך זה מספק הקשר לאיום, תיקונים בטוחים לקוד ול-CI, ואסטרטגיות הגנה מעמיקות לאבטחת אפליקציות אינטרנט מודרניות.
מהו React2Shell — ולמה כולם מדברים עליו
בתחילת דצמבר 2025, נחשפה פגיעות קריטית המכונה React2Shell — המסומנת כ-CVE-2025-55182 (וכ-CVE-2025-66478 עבור Next.js). הפגיעות טמונה באופן שבו פרוטוקול "Flight" של React Server Components (RSC) מבצע דה-סריאליזציה של מטענים נכנסים. תוקף יכול ליצור בקשה זדונית ולגרום לפיענוח לא בטוח בשרת, מה שמוביל ל ביצוע קוד מרחוק לא מאומת (RCE). censys.com+2Sysdig+2
חומרת המצב מדורגת CVSS 10.0 (מקסימום). NetSPI+1 מה שהופך את זה למסוכן במיוחד הוא שרבים פריסות ברירת מחדל של מסגרות כמו Next.js (עם תמיכה ב-RSC) הופכות לניתנות לניצול — גם אם המפתח לא כתב שום נקודת קצה מותאמת אישית של פונקציית שרת. תובנה Egnworks+2blog.tecnetone.com+2
זמן קצר לאחר החשיפה, מספר צוותי מודיעין איומים וספקי ענן (AWS, GreyNoise, חוקרי אבטחה) דיווחו ניצול פעיל בשטח — כולל סריקות אופורטוניסטיות, ניסיונות ניצול וכמה פריצות מאושרות המיוחסות לקבוצות הקשורות למדינה. TechRadar+3Amazon Web Services, Inc.+3greynoise.io+3
בעיקרון: React2Shell אינו תיאורטי — הוא אמיתי, קריטי, וקיים כבר עכשיו.

מי מושפע — ומי עשוי לחשוב שהוא בטוח (אך אינו בטוח)
| חבילה / מסגרת | גרסאות פגיעות | גרסאות מתוקנות/בטוחות (נכון לדצמבר 2025) |
|---|---|---|
| react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack (ליבת RSC) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 (react2shell.info) | ≥ 19.0.1, 19.1.2, 19.2.1 (react2shell.info) |
| Next.js (עם App Router / RSC מופעל) | 15.x, 16.x; מסוימים canary 14.x–14.3.0-canary.77+ (react2shell.info) | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 (או גרסה יציבה מאוחרת יותר) (react2shell.info) |
אזהרה חשובה: גם אם היישום שלך עושה זאת לא הגדירו "נקודות קצה של פונקציות שרת" מפורשות, וגם אם אתם חושבים שאתם משתמשים ב-React רק לצורך עיבוד בצד הלקוח, אתם עדיין עלולים להיות בסיכון — מכיוון ש-React RSC עשוי להיות מצורף באמצעות תלות, או שהשלד המוגדר כברירת מחדל עשוי לכלול קוד התומך ב-RSC. unsafe.sh+1
מכאן לבדוק בקפידה — אל תניחו ש"אנחנו בטוחים כי לא כתבנו קוד לשרת".
מה התוקפים עושים כרגע — איומים אמיתיים
- בתוך שעות גילוי, החלו קמפיינים נרחבים לסריקת האינטרנט. greynoise.io+2cyble.com+2
- חלק קבוצות APT הקשורות למדינה הסינית על פי הדיווחים, הם כיוונו למחשבים פגיעים ל-React2Shell כדי להשיג גישה ראשונית, ולאחר מכן עברו לפריסת כורים, גניבת אישורים או יצירת התמדה. Amazon Web Services, Inc.+2SOC Prime+2
- חברות אבטחה וצוותי תגובה לאירועים הבחינו בניצול מוצלח נגד אפליקציות Next.js "וניל" (שנבנו באמצעות
create-next-app) — כלומר, הגדרת ברירת המחדל אינה מבטיחה בטיחות. blog.tecnetone.com+2byteiota | מביטים לבייטים+2
דו"ח קהילתי אחד בולט במיוחד:
"שרת NextJS שלי נפגע משימוש לרעה ב-React2Shell... התראה על שימוש לרעה ב-DDoS, 5 משפחות תוכנות זדוניות שונות הופעלו, תוכנת כריית מטבעות קריפטוגרפיים." Reddit
בהתחשב בהיקף ובאגרסיביות של אוטומציית ההתקפות, תגובה מאוחרת או שטחית עלולה להוביל לפגיעה חמורה.
תיקון מיידי — באמצעות fix-react2shell-next
ההגנה המהירה ביותר, הקו הראשון, היא תלות תיקון ובנייה מחדש. החבילה fix-react2shell-next מבצעת זיהוי אוטומטי של גרסאות פגיעות בכל המונו-רפוסים ומשדרגת אותן. CVE-2025-55182 סורק+1
דוגמה לפקודת שדרוג:
לנזוף
npx fix-react2shell-next npm install react@^19.2.1 react-dom@^19.2.1 next@^16.0.7
לאחר מכן, בצע בנייה מחדש ופריסה מחדש, תוך הקפדה שלא יישארו קבצי נעילה ישנים או חבילות במטמון.
זרימת עבודה מומלצת (בטוחה ל-CI/CD):
- הוסף שלב SBOM או בדיקת תלות לצינור.
- חסימת מיזוגים/בניות אם נותר חבילת RSC פגיעה כלשהי.
- נקה את המטמון ובנה מחדש את כל הארטפקט לפני הפריסה.
כך תוכלו להבטיח שהאובייקטים שלכם לא יכילו עוד קוד פגיע, אפילו באופן עקיף.
הגנה מעמיקה: WAF, חיזוק בקשות וזיהוי בזמן ריצה
תיקון מסיר את הבאג במקור, אך אבטחה חזקה דורשת הגנות רב-שכבתיות — למקרה של תצורה שגויה בעתיד, תלות לא ידועות או וריאנטים של יום אפס. בהתבסס על מחקר ציבורי (למשל מ-Sysdig, Wiz וספקים המשתמשים בהגנות Cloud-Native) Sysdig+2research.jfrog.com+2, אנו ממליצים על הדברים הבאים:
הגנות ברמת הקצה / WAF
הגדר או הפעל כללי WAF כדי לחסום בקשות POST חשודות לנקודות קצה RSC (לדוגמה, /_next, /_rsc, או נתיבי פונקציות שרת), במיוחד אם גודל גוף הבקשה או סוג התוכן חריגים (למשל, מטענים בינאריים). ספקי WAF מרכזיים רבים כבר השיקו חתימות React2Shell. Sysdig+1
בקשה לניקוי / מגבלות גודל גוף
אם האפליקציה שלך כוללת נקודות קצה מותאמות אישית של השרת, אכוף מגבלות גודל גוף, הגבל סוגי תוכן ודחה מפורשות מטענים בלתי צפויים. לדוגמה (בסגנון Node/Express):
js
import { json, urlencoded } from 'body-parser'; app.use(json({ limit: '10kb' })); app.use(urlencoded({ extended: false, limit: '10kb' })); app.use('/api/rsc', (req, res, next) => {if (!['application/json','application/octet-stream'].includes(req.headers['content-type'])) {return res.status(415).end(); }next(); });
כך מצטמצם הסיכון שתכנים פגומים או זדוניים יפעילו את לוגיקת ה-deserialization המורכבת — מה שמקנה זמן עד לתיקון מלא.
זיהוי בזמן ריצה / ניטור / התראות על תהליכים חדשים
מכיוון שהתנהגות לאחר ניצול כוללת לעתים קרובות יצירת מעטפת (למשל, כורים, מעטפות הפוכות), הוספת זיהוי בזמן ריצה (באמצעות כלים כמו Falco, סוכני אבטחת זמן ריצה, EDR) מסייעת לתפוס קריאות child_process חריגות או חיבורים יוצאים. חוקרי Sysdig כבר פרסמו כללים לזיהוי דפוסי ניצול React2Shell. Sysdig
דוגמה לחיזוק: מתיקון לפרסום בטוח (קוד + תצורה)
לנזוף
`# 1. תלות תיקונpnx fix-react2shell-next npm install react@^19.2.1 react-dom@^19.2.1 next@^16.0.7
סביבת בנייה נקייה
rm -rf node_modules .next package-lock.json npm install npm run build

הוסף SBOM / סריקת תלות ל-CI
קטע קוד של GitHub Actions
yaml
שם: מניעת חשיפת React2Shell ב: [pull_request, push] משימות: בדיקת תלות: פועל ב: ubuntu-latest שלבים: - משתמש ב: actions/checkout@v4 - הפעל: npm ci - שם: חסום חבילות RSC הפעל: | npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack || true npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack | grep -E "@(19\\.[0|1])\\." && (echo "Vulnerable RSC found" && exit 1)
שלבו גם מגבלות גודל קובץ וסינון סוג תוכן בקוד השרת שלכם, כפי שמוצג לעיל, והטמיעו סוכן ניטור זמן ריצה או EDR מקורי בענן כדי לזהות התנהגות חשודה לאחר ההטמעה.
נתונים מהעולם האמיתי: השפעה, ניצול ומדוע עיכוב הוא מסוכן
- על פי נתוני טלמטריה שפורסמו בפומבי, מעל 77,000 כתובות IP החשופות לאינטרנט נשארים פגיעים פוטנציאלית. blog.tecnetone.com+1
- תוך שעות ספורות מרגע החשיפה, התוקפים החלו לסרוק בהמוניהם ולנצל מערכות שלא עודכנו — כולל ניסיונות של קבוצות APT. Amazon Web Services, Inc.+2SOC Prime+2
- קוד הוכחת היתכנות (PoC) ציבורי החל להסתובב, וכמה מארחים שלא תוקנו דיווחו על פגיעה מלאה: תוכנות זדוניות, כורי מטבעות קריפטוגרפיים והדלפת פרטי הזדהות. Reddit+1
משתמש Reddit אחד כתב:
"שרת NextJS שלי נפגע מ-React2Shell... מספר משפחות תוכנות זדוניות, כורה מטבעות קריפטוגרפיים, גניבת אישורים." Reddit
זה כבר לא עניין של "תיקון לפי נוחות" — זה דחוף.
איפה Penligent.ai מתאים ל — בדיקות אוטומטיות, אבטחת איכות רציפה והגנה מפני רגרסיה
לצוותים המשתמשים או מפתחים כלי בדיקת אבטחה או חדירה (במיוחד כאלה המופעלים באופן אוטומטי או מבוססים על בינה מלאכותית), React2Shell ממחיש לקח חשוב: פגיעויות מבוססות תלות + סיכוני דה-סריאליזציה + תצורות ברירת מחדל יוצרים משטח התקפה עצום.
עם Penligent.ai, אתה מקבל:
- סריקת תלות אוטומטית וניתוח SBOM — זיהוי חבילות RSC פגיעות (react-server-dom-*) או גרסאות Next.js ללא תיקון במספר מאגרים בו-זמנית.
- סימולציה אוטומטית של ניצול (ארגז חול בטוח) — האמולציה המבודדת של Penligent יכולה ליצור בקשות RSC פגומות (לא הרסניות), לבדוק את תגובת השרת ולזהות התנהגות דה-סריאליזציה מסוכנת — ללא שימוש ב-PoC ציבוריים.
- שילוב CI/CD להתראות רגרסיה — אם בקשת משיכה חדשה מחזירה חבילה פגיעה או מבטלת תוכנת אמצע המחזקת את האבטחה, Penligent.ai מפעיל התראות לפני המיזוג.
- ווים לניטור זמן ריצה — שילוב סוכנים קלים או לוגיקת התראה לזיהוי תהליכים מתרבים, חיבורים יוצאים חשודים או התנהגות חריגה אחרת (למשל, כריית מטבעות קריפטוגרפיים, קריאות C2).
בקיצור, שימוש ב- Penligent.ai הופך תיקון חד-פעמי לתיקון מצב אבטחה רציף, תוך הפחתת הסיכון גם אם הקוד משתנה, התלות מתפתחת או מתרחשת טעות אנוש.
רשימת בדיקה של שיטות עבודה מומלצות והמלצות לחיזוק האבטחה לאחר התקנת תיקונים
- תקן מיד את כל חבילות RSC ו-Next.js — אל תחכו ל"ספרינט הבא".
- נקה ובנה מחדש את האובייקטים — אל תסתמך על גרסאות שמורות במטמון.
- תלות ביקורת וקבצי נעילה — כולל תלות טרנזיטיביות.
- הוסף בדיקות CI/CD או אכיפת SBOM — מיזוג בלוקים עם חבילות פגיעות.
- השתמש ב-WAF או בסינון ברמת הקצה — לחסום או לאתגר בקשות POST חשודות בפרוטוקול Flight.
- חיטוי קלט בקשות — אכוף מגבלות גודל גוף, רשימת תוכן מותרת, אימות סכימת JSON במידת האפשר.
- פריסת זיהוי/ניטור בזמן ריצה — לזהות תהליכים מתרבים, קבצים חריגים או פעילות רשת חריגה.
- רישום, ניטור והתראה — שמור תיעוד ביקורת עבור כניסות, פריסות והתנהגות חריגה.
- התייחסו לשינויים במבנה כאל גורם קריטי לאבטחה — אפילו חבילות המותאמות לדפדפן כמו React עשויות להשפיע על אבטחת השרת כאשר RSC מעורב.
- השתמש בכלי אבטחה אוטומטיים (לדוגמה, Penligent.ai) — לסריקת תלות, זיהוי רגרסיה, סימולציית ניצול בסביבת בדיקה, ובקרת איכות אבטחה.
מחשבות אחרונות
React2Shell (CVE-2025-55182 / 66478) הוא אירוע מכונן בתחום אבטחת אפליקציות האינטרנט המודרניות. הוא מדגים כי מסגרות גדולות — אפילו כאלה הקשורות בעיקר לרינדור ממשק משתמש — עלולות לשאת פגמים הרסניים באבטחת השרת. למפתחים, לצוותי DevOps ולצוותי אבטחה: התייחסו לזה כאל יום אפס שכבר הושק באלפי פריסות.
תיקון גרסאות התלות הוא רק הצעד הראשון והדחוף ביותר. כדי להשיג אבטחה אמיתית, נדרשת הגנה רב-שכבתית: חיזוק, טיהור קלט, ניטור זמן ריצה, WAF או מסנני קצה, ביקורת שרשרת אספקה ובדיקות אבטחה רציפות.
אם אתם בונים, מתחזקים או מבצעים ביקורת על יישומים אינטרנטיים, או מפתחים כלי אבטחה, עכשיו זה הזמן לפעול לפני שהתוקפים יגיעו לשם. בעזרת כלים כמו Penligent.ai, אתה יכול לעבור מ"תיקון אש" ל אבטחת אבטחה מובנית, רציפה ואוטומטית — ותוכלו לישון טוב יותר בלילה בידיעה שהאפליקציה שלכם עמידה בפני React2Shell ואיומים עתידיים של דה-סריאליזציה.

