وقتی Core پایتون با یک خط Hex کرش میکنه: CVE-2025-13836
ماجرا ترسناکتر از یک باگ معمولی توی یک پکیج PIP هست. این آسیبپذیری مستقیما توی ماژول استاندارد http.client نشسته؛ یعنی زیربنای urllib3، requests و تقریبا هر چیزی که توی پایتون HTTP Request میزنه.
منطق باگ، شاهکاره: وقتی هدر Transfer-Encoding: chunked میاد، کلاینت باید سایز چانک بعدی رو بخونه. اتکر خیلی شیک سایز رو FFFFFFFFFFFFFFFF (۱۶ اگزابایت) اعلام میکنه. پایتون بدون هیچ Upper Bound Checkای، این عدد رو تبدیل به Int میکنه و تابع _safe_read همون لحظه تلاش میکنه این حجم رو از مموری malloc کنه. نتیجه؟ MemoryError یا کرش کامل پروسس (DoS) در کمتر از یک ثانیه.
نکته جالب ماجرا اینه که کاشف باگ، این رو با کمک یک LLM Agent توی کد urllib3 پیدا کرد، ولی ریشه توی Core بود. نکته تلخ؟ CPython حدود یک سال از این باگ خبر داشت ولی پچ نکرده بود. این یعنی امنیت توی Open Source گاهی قربانی اولویتبندیهای عجیب میشه.
اگر سرویسی دارید که با دنیای بیرون حرف میزنه، منتظر نمونید و پایتون رو به نسخههای حاوی فیکس (gh-119451) آپدیت کنید.