یک آسیبپذیری بحرانی با شناسه CVE-2025-43859 در کتابخانه h11 در پایتون، شناسایی شده است. این نقص، با امتیاز CVSS 9.1، در مواردی که h11 با یک پراکسی HTTP که به طور نادرست پیکربندیشده یا معیوب است، ترکیب شود، امکان حملات Request Smuggling را فراهم میکند.
کتابخانه h11 در پایتون برای پردازش پیامهای HTTP مستقل از ورودی/خروجی طراحی شده و در برنامههای وب مانند سرورهای ASGI/WSGI استفاده میشود. این کتابخانه با استاندارد RFC 7230 سازگار است و از پایتون 3.8 به بالا پشتیبانی میکند.
جزئیات فنی آسیبپذیری CVE-2025-43859
در پروتکل HTTP/1.1، کدگذاری چانکشده، پیام HTTP را در قطعاتی با اندازه متغیر ارسال میکند و هر قطعه با دنباله CRLF (\r\n) پایان مییابد؛ اما تا نسخه 0.14.0، کتابخانه h11 بهاشتباه هر علامت دیگری را بهجای CRLF قبول میکرد.
این امر بهتنهایی خطریایجاد نمیکند؛ اما هنگامی که h11 پشت یک پراکسی معکوس قرار میگیرد که کدگذاری چانکشده را نادرست تفسیر میکند، ناسازگاریهایی بروز میکند. برای مثال، پراکسی ممکن است با استفاده از یک تابع ساده «خواندن تا پایان خط» بایتهای بیشتر از حد لازم را بخواند، که منجر به تفسیر متفاوت h11 و پراکسی از یک جریان بایت یکسان میشود.
پیامدهای امنیتی Request Smuggling
هرگاه دو پردازشگر HTTP یک جریان بایت یکسان را بهصورت متفاوت تفسیر کنند، شرایط برای حملاتRequest Smuggling فراهم میشود. در یک نمونه، h11 یک درخواست چانکشده نادرست را بهعنوان دو درخواست HTTP جداگانه تفسیر میکند، در حالی که یک پراکسی معیوب آن را بهعنوان یک درخواست ترکیبی میبیند.
اگر درخواست دوم شامل هدرهای حساس مانند Cookie: SESSION_KEY باشد، سرور ممکن است این را بهعنوان بخشی از بدنه درخواست اول پردازش کند، که میتواند به نشت اطلاعات احراز هویت یا دور زدن کنترلهای دسترسی منجر شود.
در سناریوهای خطرناکتر، در محیطهایی که پراکسیها برای محدود کردن دسترسی به اندپوینتهای محافظتشده استفاده میشوند، یک پراکسی آسیبپذیر ممکن است دو درخواست HTTP از کاربران مختلف را که روی یک اتصال ارسال شدهاند، به سرور بکاند ارسال کند. در این حالت، سرور ممکن است درخواست دوم را بهعنوان بخشی از بدنه درخواست اول تفسیر کند، که میتواند به سرقت اطلاعات احراز هویت یک کاربر توسط کاربر دیگر منجر شود.
اقدامات اصلاحی و توصیهها
این نقص در نسخه 0.15.0 کتابخانه h11 برطرف شده است. توسعهدهندگان استفادهکننده از h11 باید فورا به این نسخه یا بالاتر ارتقا دهند تا از مخاطرات حملات Request Smuggling جلوگیری کنند. بررسی پیکربندی پراکسیهای HTTP مورد استفاده در کنار h11 نیز برای اطمینان از پردازش صحیح کدگذاری چانکشده توصیه میشود.