כותרת Penligent

CVE-2025-11953 ב-React Native: ניצול מלא, מעטפת הפוכה ומדריך למיתון

מבוא: מדוע CVE-2025-11953 מהווה שינוי מהפכני באבטחת React Native

אם אתה React Native מפתח או איש אבטחת IT העובד עם יישומים ניידים, עליך להיות מודע ל CVE-2025-11953—פגיעות קריטית המשפיעה על הליבה שרת פיתוח מטרו משמש ב React Native פרויקטים. פגיעות זו חושפת את סביבת הפיתוח ל הפעלת קוד מרחוק (RCE) התקפות, המהוות סיכון משמעותי, במיוחד עבור מי שלא מגדיר את שרתי הפיתוח שלו בצורה מאובטחת.

בעיקרו של דבר, CVE-2025-11953 מגלה מכה כפולה: פגמים בתצורה ברירת המחדל ו פגיעויות בהזרקת פקודות. שרת פיתוח מטרו, החיוני לאגירת ואיתור באגים באפליקציות React Native, נקשר כברירת מחדל ל- 0.0.0.0, המאפשר גישה חיצונית לשרת. יתר על כן, נקודות קצה מסוימות החשופות בשרת מקבלות קלט משתמש ללא סינון, מה שמאפשר לתוקפים להזריק פקודות מערכת הפעלה, מה שמוביל ל RCE והשלם השתלטות על מארח.

מכיוון ש-React Native הוא מסגרת מובילה לפיתוח אפליקציות מובייל חוצות פלטפורמות, מפתחים נוטים לעתים קרובות להמעיט בערכם של הסיכונים הנשקפים מפגיעות זו. במאמר זה נפרט את הבעיות המרכזיות של CVE-2025-11953, נסקור את ההשלכות הטכניות שלו, ונציע צעדים מעשיים להפחתת הסיכון. נתייחס גם להיבטים המעשיים של אבטחת סביבת הפיתוח שלכם ושמירה על זרימות עבודה מאובטחות ב-React Native.

מהו CVE‑2025‑11953? מבט מקרוב

לדברי צוות המחקר האבטחה של JFrog Ltd., הפגיעות משפיעה על חבילת NPM הנפוצה. @react‑native‑community/cli, המפעיל את שרת Metro עבור React Native. הפגם מאפשר לתוקפים לא מאומתים לשלוח בקשת POST מתוכננת לנקודת קצה חשופה (כגון /open‑url) ולבצע פקודות OS שרירותיות על המארח. JFrog+2nvd.nist.gov+2 גורמים מרכזיים:

  • ציון CVSS 3.1: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) nvd.nist.gov
  • גרסאות מושפעות: @react‑native‑community/cli‑server‑api מ-4.8.0 עד 20.0.0‑alpha.2. התיקון זמין בגרסה 20.0.0. החדשות של האקר +1
  • הבעיה הבסיסית: שרת Metro נקשר ל-0.0.0.0 כברירת מחדל ו מעביר את קלט המשתמש דרך open() (מהחבילה npm הפתוחה) לנתיב ביצוע פקודות של מערכת ההפעלה. CSO Online+1

מדוע זה חשוב: בניגוד לפגמים טיפוסיים בשרת פיתוח המוגבלים ל-localhost, פגם זה מספק וקטור רשת מרוחק. מחשבי פיתוח וסוכני CI המריצים את Metro נמצאים בסיכון. eSecurity Planet

פריטפרטים
מזהה CVECVE-2025-11953
סוג הפגיעותהזרקת פקודות מערכת הפעלה (CWE‑78)
רכיב מושפעשרת הפיתוח Metro של React Native CLI
גרסאות מושפעותReact Native ≤ 0.74.1 / Metro ≤ 0.81.0 (ו-CLI‑server‑api 4.8.0–20.0.0‑alpha.2)
נקודת קצה של טריגרנקודות קצה HTTP חשופות (לדוגמה, /open‑url, /symbolicate, /debugger‑ui)
חומרה (CVSS)9.8 / AV:N / AC:L / PR:N / UI:N
סיכון עיקריביצוע קוד מרחוק → פגיעה במחשב המפתח → תנועה רוחבית ברשת הפנימית
CVE-2025-11953 Penligent

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

חשיפה ברירת מחדל של שרת Metro

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

להלן דוגמה לקוד שמגדיר את הקישור המוגדר כברירת מחדל:

javascript:

// תצורת ברירת המחדל של שרת Metro (react-native/node_modules/metro/src/server/index.js)

const config = {

מארח: '0.0.0.0', // נקשר לכל הממשקים

יציאה: 8081, // יציאה ברירת מחדל

enableCORS: true // בקשות בין-מקוריות מופעלות

};

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

פגיעות בהזרקת פקודות

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

לדוגמה, בקשה לגיטימית ל /סמל עשוי להיראות כך:

POST /symbolicate HTTP/1.1

מארח: [target-ip]:8081

סוג תוכן: application/json

{

"logPath": "/var/log/react-native/crash.log"

}

עם זאת, תוקף יכול להזריק פקודות נוספות, כמו זו:

POST /symbolicate HTTP/1.1

מארח: [target-ip]:8081

סוג תוכן: application/json

{

"logPath": "/var/log/react-native/crash.log && whoami"

}

במקרה זה, המערכת מבצעת את הפקודה cat /var/log/react-native/crash.log && whoami, מה שמאפשר לתוקף לבצע פקודות שרירותיות בשרת, כגון מי אני כדי לחשוף את המשתמש הנוכחי.

אילו גרסאות של React Native מושפעות מ-CVE-2025-11953?

הפגיעות משפיעה על גרסאות React Native ≤ 0.74.1 ו גרסאות Metro ≤ 0.81.0. אם אתה מריץ את הגרסאות הללו או גרסאות ישנות יותר, חשוב לשדרג מיד כדי למנוע חשיפת סביבת הפיתוח שלך לביצוע קוד מרחוק.

כדי לבדוק את גרסת React Native שלך, תוכל להריץ:

רשימת npm @react-native-community/cli-server-api

אם הגרסה מיושנת, שדרג לגרסה מאובטחת על ידי הפעלת הפקודה:

npm install react-native@latest

אם שדרוג React Native אינו אפשרי כרגע, ניתן עדכון מטרו באופן עצמאי על ידי הפעלת:

npm install metro@latest --save-dev

אסטרטגיות מעשיות למיתון CVE-2025-11953

תיקון מיידי: קישור Metro ל-localhost

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

כדי לקשר את Metro ל-localhost, הפעל:

npx react-native start --host 127.0.0.1

כדי להפוך את זה לקבוע, הוסף את הדברים הבאים לקובץ שלך package.json:

"סקריפטים": {

"התחל": "react-native start --host 127.0.0.1",

"android": "react-native run-android",

"ios": "react-native run-ios"

}

אבטחת רשת: השתמש בחומות אש

אמצעי הגנה מיידי נוסף הוא הגדרת חומות אש כדי לחסום כל גישה חיצונית ליציאת Metro המוגדרת כברירת מחדל (8081). לדוגמה, ב-Linux, השתמש בפקודה:

iptables -A INPUT -p tcp --dport 8081 -s 127.0.0.1 -j ACCEPT

iptables -A INPUT -p tcp --dport 8081 -j DROP

למשתמשי Windows, קבעו את תצורת חומת האש כך שתגביל את יציאה 8081 ל- localhost.

Penligent: אוטומציה של בדיקות אבטחה עבור פרויקטים של React Native

כמפתח React Native, להישאר צעד אחד לפני פגיעויות כמו CVE-2025-11953 יכול להיות מאתגר. זה המקום שבו Penligent, פלטפורמת בדיקות חדירה מבוססת בינה מלאכותית, נכנסת לתמונה. Penligent מאתר באופן אוטומטי נקודות תורפה כגון CVE-2025-11953, סריקת בסיס הקוד והתצורות של React Native כדי לזהות סיכונים פוטנציאליים בזמן אמת.

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

מסקנה: אבטחת פרויקטים של React Native מפני CVE-2025-11953

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

כדי להפחית את הסיכונים של CVE-2025-11953, מפתחים צריכים:

  • שדרג לגרסה האחרונה React Native ו מטרו גרסאות.
  • יש ליישם תיקונים זמניים כגון קישור השרת ל- localhost.
  • הגדר חומות אש כדי להגביל את הגישה ליציאה המוגדרת כברירת מחדל של Metro.

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

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

https://youtu.be/Nl9XoXOIqPM
שתף את הפוסט:
פוסטים קשורים