
استغلال PoC للهروب من بيئة العزل في Angular Expressions (CVE-2024-54152) يحقق تنفيذ التعليمات البرمجية عن بُعد (RCE) عبر تعبير خبيث. يتضمن بيئة Docker ونصوص حمولة بلغتي Go وPython.
Angular Expressions هي وحدة مستقلة توفر التعبيرات لإطار عمل الويب Angular.JS. قبل الإصدار 1.4.3، يمكن للمهاجم كتابة تعبير خبيث يهرب من بيئة العزل لتنفيذ كود تعسفي على النظام. باستخدام حمولة أكثر تعقيدًا (غير معلنة)، يمكن الحصول على وصول كامل لتنفيذ كود تعسفي على النظام. تم إصلاح المشكلة في الإصدار 1.4.3 من Angular Expressions. يتوفر حلان بديلان ممكنان. يمكن إما تعطيل الوصول إلى __proto__ عالميًا أو التأكد من استخدام الدالة بوسيط واحد فقط.
لإثبات هذه الثغرة، أنشأنا تطبيق Node.js بسيطًا يستخدم الإصدار الضعيف من Angular Expressions. يعرض التطبيق نقطة نهاية /parse لتقييم التعبيرات المقدمة من المستخدم.
استنساخ المستودع:
git clone https://github.com/example/CVE-2024-54152-poc.git
cd CVE-2024-54152-poc
بناء وتشغيل حاوية Docker:
docker build -t vulnerable-app .
docker run -p 8080:8080 vulnerable-app
إرسال الحمولة الخبيثة: يمكنك استخدام النص البرمجي المقدم بلغة Go أو بايثون لإرسال الحمولة.
باستخدام Go:
go run poc.go
باستخدام Python:
python3 poc.py
يجب على الخادم تنفيذ الحمولة وإرجاع نتيجة أمر id، مما يوضح تنفيذ كود تعسفي.
للتخفيف من هذه الثغرة، قم بتحديث Angular Expressions إلى الإصدار 1.4.3 أو أحدث. بدلاً من ذلك، يمكنك تعطيل الوصول إلى __proto__ عالميًا أو التأكد من استخدام الدالة بوسيط واحد فقط.