کشف آسیبپذیری در فریمورک aiohttp پایتون
پروتکل HTTP از دنباله CRLF جهت نمایش پایان یک سربرگ (header) و شروع خط بعدی و همچنین جایی که سربرگها پایان یافته و محتوای وبسایت شروع میشود، استفاده میکند. اگر مهاجم یک CRLF وارد کند، میتواند یک سربرگ جدید اضافه کند. برای مثال به وسیلهی یک سربرگ location، مهاجم میتواند کاربر را به وبسایت دیگری هدایت کند. فریمورک aiohttp که از کتابخانه asyncio پایتون استفاده میکند، حاوی نقص امنیتی تزریق CRLF است. اگر محصولی با استفاده از aiohttp تولید شدهباشد، یک مهاجم میتواند از اعتبارسنجی نامناسب آن بهرهبرداری کرده و درخواست http را تغییر دهد(به طور مثال یک سربرگ اضافه کند) یا حتی در صورت بدست گرفتن کنترل متد http، موفق میشود یک درخواست جدید را ایجاد کند.
این نقص امنیتی با شناسه CVE-2023-49082 و شدت CVSS 5.3، هنگامی رخ میدهد که مهاجم کنترل متد HTTP (مانند GET، POST و ...) را بدست گرفتهباشد. نسخههای قبلی، هیچگونه اعتبارسنجی بر مقدار متغیرهای داده شده درخواست http، اعمال نکردهاند و این مسئله کنترل متد http و تغییر محتوای درخواست را برای مهاجم میسر خواهد ساخت.
وجود نقص امنیتی در نمونه سادهای از کد به همراه خروجی آن
محصولات تحت تأثیر
نسخه 3.8.6 این فریمورک آسیبپذیر میباشد.
- نام کتابخانه آسیبپذیر:
aiohttp-3.8.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
توصیههای امنیتی
به کاربران توصیه میشود در اسرع وقت نسبت به ارتقاء نسخه این فریمورک اقدام نمایند و چنانچه این امر مقدور نبود، اعتبارسنجی دستی مقادیر وارد شده را در دستور کار خود قراردهند.
منابع خبر:
[1] https://www.mend.io/vulnerability-database/CVE-2023-49082
[2] https://github.com/advisories/GHSA-qvrw-v9rv-5rjx
[3] https://gist.github.com/jnovikov/7f411ae9fe6a9a7804cf162a3bdbb44b