مقدمة: لماذا يعدّ CVE-2025-11953 تغييراً جذرياً في أمن React Native Security
إذا كنت React Native مطور أو متخصص في أمن تكنولوجيا المعلومات يعمل مع تطبيقات الهاتف المحمول، يجب أن تكون على دراية بما يلي 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-nact-native-community/cliالذي يقوم بتشغيل خادم مترو ل React Native. يسمح هذا الخلل للمهاجمين غير المصادقين بإرسال طلب POST مصمم خصيصًا إلى نقطة نهاية مكشوفة (مثل /فتح الرابط) وتنفيذ أوامر نظام تشغيل عشوائية على المضيف. JFrog+2nvd.nist.gov.gov+2 العوامل الرئيسية:
- درجة CVSS 3.1: 9.8 (av:n:n/ac:l/pr:n/ui: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.0. أخبار القراصنة + 1
- المشكلة الأساسية: يرتبط خادم Metro ب 0.0.0.0.0.0 افتراضيًا و تمرير مدخلات المستخدم من خلال
فتح()(من حزمة npm المفتوحة) في مسار تنفيذ أوامر نظام التشغيل. CSO Online+1
ما أهمية ذلك: على عكس عيوب الخادم المطور النموذجي الذي يقتصر على المضيف المحلي، يوفر هذا الخادم ناقل الشبكة عن بُعد. تتعرض أجهزة التطوير ووكلاء CI الذين يقومون بتشغيل Metro للخطر. إي سيكيوريتي بلانيت
| البند | التفاصيل |
|---|---|
| معرّف CVE | CVE-2025-11953 |
| نوع الضعف | حقن أوامر نظام التشغيل (CWE-78) |
| المكوّن المتأثر | خادم تطوير مترو مترو مترو في React Native CLI |
| الإصدارات المتأثرة | React Native ≤ 0.74.1 / Metro ≤ 0.81.0 (و CLI-server-API 4.8.0-20.0.0-alpha.2) |
| نقطة نهاية المشغل | نقاط نهاية HTTP المكشوفة (على سبيل المثال، /فتح-url، /الرمز، /الرمز، /مصحح الأخطاء-ي) |
| الخطورة (CVSS) | 9.8 / 9.8 / AV:N / AC:L / PR:N / UI:N |
| المخاطر الأولية | تنفيذ الشيفرة البرمجية عن بُعد → اختراق جهاز ديف → الحركة الجانبية للشبكة الداخلية |

فيما يلي نظرة فاحصة على المخاطر التقنية المحددة التي تجعل هذا الخلل خطيرًا بشكل خاص:
التعرض الافتراضي لخادم المترو
عندما React Native CLI يبدأ خادم تطوير المتروفإنه يتم ربطه افتراضيًا ب 0.0.0.0مما يعني أن الخادم يستمع على جميع واجهات الشبكة المتاحة - الداخلية والخارجية على حد سواء. هذا خطر أمني كبير على أي مطور يستضيف الخادم على جهاز مزود ب الوصول إلى الإنترنت.
إليك عينة من الشيفرة التي تهيئ هذا الربط الافتراضي:
جافا سكريبت:
// التهيئة الافتراضية لخادم المترو (react-native/node_modules/metro/src/src/server/index.js)
التكوين = {
المضيف: '0.0.0.0.0'، // يرتبط بجميع الواجهات
المنفذ: 8081، // المنفذ الافتراضي
تمكين CORS: صحيح // تم تمكين الطلبات العابرة للأصول
};
ما يجب أن يحدث هو أن خادم مترو يجب أن يرتبط فقط بـ 127.0.0.1 (المضيف المحلي)، مما يضمن أن جهاز التطوير المحلي فقط يمكنه الوصول إليه. ومع ذلك، يسمح هذا التكوين الوصول عن بُعدمما يعرض الخادم للخطر
ثغرة حقن الأوامر
يتضمن الجزء الثاني من الثغرة الأمنية حقن الأوامرحيث نقاط نهاية معينة، مثل /الرمز و /مصحح الأخطاء/إيتمرير مدخلات المستخدم مباشرة إلى أوامر النظام. ويسمح هذا النقص في التحقق من صحة المدخلات للمهاجمين بإدخال أوامر خبيثة واحتمال تنفيذ تعليمات برمجية عشوائية.
على سبيل المثال، طلب مشروع لـ /الرمز قد تبدو هكذا
POST / الرمز الرمزي HTTP/1.1
المضيف: [الهدف-IP]:8081
نوع المحتوى: تطبيق/جسون
{
"logPath": "/var/log/react-native/crash.log"
}
ومع ذلك، يمكن للمهاجم حقن أوامر إضافية، مثل هذا:
POST / الرمز الرمزي HTTP/1.1
المضيف: [الهدف-IP]:8081
نوع المحتوى: تطبيق/جسون
{
"logPath": "/var/log/react-nact-native/crash.log &&Whoami"
}
في هذه الحالة، يقوم النظام بتنفيذ الأمر cat /var/log/react-native/crash.log & whoamiمما يسمح للمهاجم بتنفيذ أوامر عشوائية على الخادم، مثل هوامي للكشف عن المستخدم الحالي.
ما هي إصدارات React Native المتأثرة بمشكلة CVE-2025-11953؟
تأثيرات الضعف إصدارات React Native ≤ 0.74.1 و إصدارات المترو ≤ 0.81.0. إذا كنت تقوم بتشغيل هذه الإصدارات أو أي إصدارات أقدم، فمن الضروري الترقية فورًا لتجنب تعريض بيئة التطوير لديك لتنفيذ التعليمات البرمجية عن بُعد.
للتحقق من إصدار React Native الخاص بك، يمكنك تشغيل:
npm list @react-native-community/cli-server-API
إذا كان الإصدار قديمًا، فقم بالترقية إلى إصدار آمن عن طريق تشغيله:
npm install react-native@latest
إذا كانت ترقية React Native غير ممكنة على الفور، يمكنك تحديث مترو الأنفاق بشكل مستقل عن طريق الجري:
npm install metro@latest -حفظ-مطور-حفظ-مطور-حفظ
استراتيجيات التخفيف العملية ل CVE-2025-11953
الإصلاح الفوري: ربط Metro بالمضيف المحلي
إذا لم تتمكن من ترقية تبعياتك على الفور، يمكنك التخفيف من المخاطر مؤقتًا عن طريق ربط خادم مترو إلى 127.0.0.1. هذا يمنع المهاجمين الخارجيين من الوصول إلى الخادم، حتى لو كان مكشوفًا.
لربط Metro بالمضيف المحلي، قم بتشغيل:
npx بدء التفاعل الأصلي -المضيف 127.0.0.1
لجعل هذا الأمر دائمًا، أضف ما يلي إلى الحزمة.json:
"نصوص": {
"بدء التشغيل": "بدء التفاعل الأصلي - المضيف 127.0.0.1",
"أندرويد": "رد الفعل-التشغيل-التشغيل-الروبوت",
"ios": "رد فعل-تشغيل-آيوس الأصلي"
}
أمن الشبكة: استخدام جدران الحماية
من وسائل الحماية الفورية الأخرى هي تكوين جدران الحماية لحظر أي وصول خارجي إلى منفذ المترو الافتراضي (8081). على سبيل المثال، على لينكس، استخدم:
iptables -A INPUT -p tcp --dport 8081 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j DROP
بالنسبة لمستخدمي ويندوز، قم بتكوين جدار الحماية لتقييد المنفذ 8081 إلى المضيف المحلي.
Penligent: أتمتة اختبار الأمان لمشاريع React Native
كمطوِّر React Native، فإن البقاء في طليعة مطوّري React Native، فإن البقاء في طليعة الثغرات مثل CVE-2025-11953 يمكن أن يكون تحدياً. وهنا يأتي دور بنليجنتوهي منصة لاختبار الاختراق مدعومة بالذكاء الاصطناعي. بنليجنت أتمتة اكتشاف الثغرات الأمنية مثل CVE-2025-11953فحص قاعدة رموز وتكوينات React Native الخاصة بك لتحديد المخاطر المحتملة في الوقت الفعلي.
مع بنليجنت، يمكنك دمج الآلي اختبار الاختراق في مسار التطوير لديك، مما يضمن أن مشاريعك آمنة قبل النشر. يساعدك هذا النهج الأمني الاستباقي على تجنب الثغرات الأمنية المكلفة ويحمي المستخدمين من الهجمات الضارة.
خاتمة: تأمين مشاريع React Native Projects من CVE-2025-11953
CVE-2025-11953 قد كشفت عن ثغرات أمنية خطيرة في خادم تطوير المترو من React Nativeمما يسهل على المهاجمين السيطرة على بيئة التطوير. من خلال فهم عيوب التكوين و مخاطر حقن الأوامر، يمكن للمطورين اتخاذ إجراءات لحماية مشاريعهم.
للتخفيف من مخاطر CVE-2025-11953، يجب على المطورين:
- الترقية إلى الأحدث React Native و المترو الإصدارات.
- تنفيذ إصلاحات مؤقتة مثل ربط الخادم بـ المضيف المحلي.
- تكوين جدران الحماية لتقييد الوصول إلى منفذ Metro الافتراضي.
علاوة على ذلك، فإن استخدام أدوات مثل بنليجنت أتمتة اختبار الأمان، مما يضمن بقاء بيئة التطوير الخاصة بك آمنة. من خلال اعتماد هذه الاستراتيجيات، يمكنك حماية مشاريع React Native الخاصة بك من تهديد تنفيذ التعليمات البرمجية عن بُعد والتأكد من أن عمليات سير عمل التطوير لديك تظل آمنة.
لمزيد من أفضل ممارسات الأمان، يرجى الرجوع إلى العشرة الأوائل العشرة الأوائل في OWASP و إرشادات أمان npm للحصول على التحديثات المستمرة.

