כותרת Penligent

מעבר לתיקון: מבט פנימי על fix-react2shell-next ועל ניצול CVE-2025-66478 "React2Shell"

עם ציון CVSS של 10.0, הפגיעות "React2Shell" הרסה את מודל האמון של מערכת React. מאמר זה מספק ניתוח טכני מעמיק של הפגיעות, מסביר מדוע Next.js שחררה לאחרונה כלי שורת פקודה ייעודי בשם fix-react2shell-next כדי לסייע למפתחים לאתר ולתקן במהירות את הפגיעות "React2Shell" (CVE-2025-66478), ובוחן כיצד פלטפורמות אבטחה מבוססות בינה מלאכותית כמו Penligent מתפתחות כדי לאתר את הפגמים הלוגיים המורכבים הללו.

React2Shell Penligent

מבוא: קריסת האמון ב-RSC

עבור מהנדס אבטחה מנוסה, CVE-2025-66478 אינו רק עוד עדכון תלות. הוא מייצג שינוי מהותי בארכיטקטורה של רכיבי שרת React (RSC).

הפגיעות מאפשרת לתוקפים לא מאומתים להריץ קוד שרירותי פשוט על ידי שליחת זרם בינארי מותאם לשרת. המסגרת מבצעת באופן עיוור דה-סריאליזציה של זרם זה לפני אימות ההרשאה. בתגובה לאיום קריטי זה, Next.js שחררה לאחרונה כלי שורת פקודה ייעודי בשם fix-react2shell-next כדי לסייע למפתחים לאתר ולתקן במהירות את הפגיעות "React2Shell" (CVE-2025-66478). הבנת כלי זה היא חיונית לכל אסטרטגיית אבטחה לתגובה מהירה.

תגובה טקטית: פירוק fix-react2shell-next

Vercel לא רק שחררה תיקון, אלא גם שחררה סוכן תיקון אוטומטי. בסביבות monorepo מורכבות, איתור ידני של כל גרסה פגיעה של react-server-dom-webpack הוא מתכון לאסון. תיקון-react2shell-next הכלי נועד לתקן באופן כירורגי את עץ התלות.

כלי בדיקת חדירות AI Penligent
התמוטטות האמון ב-RSC

כיצד פועל הכלי

כאשר אתה מבצע תיקון npx-react2shell-next, הכלי מבצע פעולה רב-שלבית:

  1. סריקת תלות רקורסיבית: זה לא נעצר בשורש package.json. הוא חוצה את כל node_modules עץ לזיהוי תלות מקוננות שעשויות להסתמך על גרסאות פגיעות של מנוע העיבוד RSC.
  2. נעילת גרסה דטרמיניסטית: הוא אוכף מסלול שדרוג קפדני:
    • Next.js 15.x הועלה ל 15.1.9+.
    • Next.js 16.x הועלה ל- 16.0.7+.
    • הוא גם מרענן את קובץ הנעילה (package-lock.json או pnpm-lock.yaml) כדי להבטיח ששינויים אלה יהיו בלתי ניתנים לשינוי.
  3. החלטת קנרי: הוא ממפה באופן אוטומטי את גרסאות Canary הבלתי יציבות לגרסאות היציבות והבטוחות הקרובות ביותר אליהן, ובכך מונע תקלות בבנייה במהלך חלון התיקונים הדחופים.

תרחישי שימוש

באש

`# מצב אינטראקטיבי (מומלץ להפעלה ראשונה) npx fix-react2shell-next

מצב אוטומטי CI/CD (תיקון כפוי ללא הנחיות)

npx fix-react2shell-next –fix –json

מצב ביקורת (בדיקה ללא שינוי)

npx fix-react2shell-next –dry-run`

אנטומיה של הפגיעות: מלכודת הדה-סריאליזציה

כדי להבין את חומרת הבעיה, עלינו לבחון את פרוטוקול התקשורת. CVE-2025-66478 מנצל את פרוטוקול טיסה React—הפורמט הבינארי המשמש לתקשורת בין שרת ללקוח.

המטען הזדוני

הפגם טמון באופן שבו השרת מבצע דה-סריאליזציה של "הפניות מודול". תוקף יכול ליצור מטען באמצעות ה- $@ מזהה להתייחסות למודולים פנימיים של Node.js שאסור לחשוף לעולם.

מבנה ניצול קונספטואלי:

HTTP

POST /page HTTP/1.1 Next-Action: a9fa42b4… Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary

——WebKitFormBoundary Content-Disposition: form-data; name=”1_action_arg”

{“$@1”:[“$@2”,null,{“filepath”:”child_process”,”name”:”exec”}]} // השרת מנסה “להרוות” אובייקט זה, ומבצע את הפונקציה exec ——WebKitFormBoundary–`

מכיוון שהפירוק הזה מתרחש לפני הלוגיקה של היישום פועלת, תוכנת אמצע לאימות (כמו NextAuth.js) לעתים קרובות עוקפת אותה לחלוטין.

CVE-2025-66478 "React2Shell" ניצול

מדוע כלי האבטחה המסורתיים נכשלו

כלי האבטחה הישנים לא זיהו וקטור תקיפה זה.

  • עיוורון WAF: רוב ה-WAF מטפלים multipart/form-data כקובצי העלאה. הם סורקים מילות מפתח SQL או תגי סקריפט, אך אינם מבינים את הדקדוק הבינארי של RSC. מטען Flight תקין, אפילו כזה שהוא זדוני, נראה כמו נתונים תמימים למנוע regex.
  • כישלון DAST: סורקים מסורתיים (DAST) מסתמכים על סריקת קישורים. פעולות השרת של Next.js משתמשות במזהים מוצפנים (לדוגמה, a9fa42b4...) שאינם נחשפים ככתובות URL סטנדרטיות. הסורקים פשוט לא מצליחים למצוא את נקודות הכניסה.

חזית האבטחה של הבינה המלאכותית: Penligent.ai

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

סיור מודע להקשר

בניגוד לסורק פשוט, סוכני ה-AI של Penligent מנתחים את חבילות ה-JavaScript בצד הלקוח (Source Maps). הם מחלצים את מפות ה-Server Action ID המוסתרות, ובכך מבצעים הנדסה לאחור של שטח ה-API של היישום בתוך שניות. הדבר מאפשר ל-Penligent לבדוק נקודות קצה שאף סורק אחר אינו יכול לראות.

PoC בלחיצה אחת באמצעות Penligent

ניצול פרוטוקול-ילידי

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

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

אימות לוגיקה אוטומטי

Penligent מאמת את הפגיעות מבלי לקרוס את השרת. הוא משתמש בטכניקות Out-of-Band (OOB), ומאלץ את השרת לשלוח בקשת DNS לנקודת קצה מבוקרת. כך מתקבלת וודאות של 100% לגבי RCE, ללא הסיכון לתוצאות חיוביות כוזבות הנפוצות בכלים מסורתיים.

מסקנה ופתרון

CVE-2025-66478 משמשת כקריאת השכמה. כאשר אנו מפשטים את מורכבות השרת באמצעות מסגרות כמו Next.js, אנו יוצרים משטחי תקיפה חדשים ולא שקופים.

תוכנית פעולה מיידית:

  1. הפעל את הכלי: הפעל תיקון npx-react2shell-next מיד בכל הצי שלך.
  2. סיבוב סודי: הנח שהמשתנים הסביבתיים שלך נפגעו. החלף מיד את מפתחות AWS, סיסמאות מסד הנתונים ואסימוני API.
  3. מודרניזציה של הבדיקות: צאו מעבר לסריקה סטטית. שלבו בדיקות חדירה מבוססות בינה מלאכותית כמו Penligent כדי לאתר פגמים לוגיים שהכלים המסורתיים מפספסים.

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

משאבים מומלצים בעלי סמכות גבוהה:

שתף את הפוסט:
פוסטים קשורים