آسیبپذیری HTTP2Shell در Brotli؛ خطر اجرای کد از راه دور
یک باگ بحرانی در Brotli میتونه با داده فشرده دستکاریشده باعث افشای حافظه یا اجرای کد بشه. اگر از Node.js، کلاینتهای HTTP پایتون یا نرمافزارهای وابسته به Brotli استفاده میکنید، فقط نصب وصله کافی نیست.
تهیهشده با کمک هوش مصنوعی از منابع ذکرشده · بازبینی و ویرایش: مهدی طالب لو · سیاست تحریریه

فهرست مطالب5 بخش
یک آسیبپذیری بحرانی در رمزگشای Brotli به مهاجم اجازه میدهد با ارسال داده فشرده دستکاریشده، خارج از محدوده یک بافر بنویسد. این نقص که با شناسه CVE-2026-111497 و نامهای HTTP2Shell، Broccoli2Shell و Node2Shell شناخته میشود، میتواند به از کار افتادن برنامه، نشت حافظه یا اجرای کد از راه دور منجر شود و برای کاربران Node.js، پایتون و دیگر نرمافزارهای مبتنی بر رمزگشای C گوگل اهمیت دارد.
#نکات کلیدی
- این آسیبپذیری در رمزگشای C کتابخانه متنباز Brotli قرار دارد.
- نسخههای ۱.۰.۳ تا ۱.۰.۹ و همچنین ۱.۱.۰ و ۱.۲.۰ آسیبپذیر اعلام شدهاند.
- پیامدهای احتمالی شامل خرابی برنامه، نشت حافظه و اجرای کد از راه دور است.
- Node.js و بعضی کلاینتهای HTTP پایتون ممکن است بدون دخالت مستقیم برنامه، پاسخهای Brotli را باز کنند.
- پس از بهروزرسانی باید پردازشها را راهاندازی مجدد و ایمیجهای کانتینری را بازسازی و دوباره مستقر کنید.
#HTTP2Shell چگونه عمل میکند؟
آسیبپذیری Broccoli2Shell یک خطای نوشتن خارج از محدوده بافر در رمزگشای Brotli است. در نسخههای آسیبپذیر، تابع مسئول تشخیص نوع و طول بلوک نمیتوانست میان یک جریان خراب و وضعیتی که صرفاً به ورودی بیشتری نیاز دارد، بهدرستی تفاوت بگذارد؛ در مسیر پردازش سریع نیز نتیجه این بررسی نادیده گرفته میشد.
یک جریان Brotli دستکاریشده میتواند تغییری نامعتبر در نوع بلوک درخواست کند. رمزگشا این وضعیت را بهاشتباه نیاز به داده بیشتر تلقی میکند و بایتهای تحت کنترل مهاجم را به بافر داخلی هشتبایتی میافزاید؛ در نتیجه، اطلاعات مجاور در حافظه آسیب میبینند و زمینه برای نشت حافظه یا اجرای کد فراهم میشود.
این نقص در خود Node.js یا پایتون ایجاد نشده است؛ ریشه آن به رمزگشای مرجع C گوگل برمیگردد. به همین دلیل، هر نرمافزاری که یکی از نسخههای آسیبپذیر Brotli را همراه خود داشته باشد یا به آن پیوند خورده باشد، بسته به شیوه استفاده میتواند در معرض خطر قرار بگیرد.
#چه نرمافزارهایی ممکن است در معرض خطر باشند؟
تابع داخلی fetch() در Node.js پاسخهایی با فشردهسازی Brotli را بهصورت خودکار باز میکند. در پایتون نیز کتابخانههایی مانند requests، urllib3، httpx و aiohttp در صورت نصب بسته Brotli میتوانند همین کار را انجام دهند؛ بنابراین حتی اگر برنامه مستقیماً Brotli را فراخوانی نکند، ممکن است یکی از وابستگیهایش داده ورودی را رمزگشایی کند.
این مسیر در قابلیتهایی مانند دریافت وبهوک، ساخت پیشنمایش لینک، خزندههای وب یا گزینه «وارد کردن از نشانی اینترنتی» اهمیت بیشتری پیدا میکند؛ چون سرور مقابل میتواند پاسخ فشرده را ارسال کند. Express نسخههای ۵.۰.۰ تا ۵.۳.۰ و body-parser نسخههای ۲.۰.۰ تا ۲.۳.۰ نیز میتوانند بدنه درخواستهای Brotli را باز کنند، اما خودشان منشأ باگ نیستند و صرفاً مسیری برای رسیدن داده به رمزگشای آسیبپذیر محسوب میشوند.
فایروالهای PAN-OS نسخههای ۱۱.۲، ۱۲.۱ و ۱۲.۲ نیز هنگامی در معرض خطرند که رمزگشایی TLS/SSL و بازرسی Brotli همزمان فعال باشد. افزون بر این، پردازش تصویرهای JPEG XL در بعضی ساختهای FFmpeg ۸.۱ که از libjxl استفاده میکنند، میتواند فراداده فشردهشده با Brotli را به رمزگشای آسیبپذیر برساند.
#نسخههای امن و اقدامهای ضروری
نسخههای اصلاحشده اعلامشده عبارتاند از:
- Google Brotli: نسخههای ۱.۰.۱۰، ۱.۱.۱ و ۱.۲.۱
- Node.js: نسخههای ۲۲.۲۳.۴، ۲۴.۲۲.۱ و ۲۶.۱۲.۱
- بسته Python Brotli: نسخه ۱.۲.۱
- بسته Python brotlicffi: نسخه ۱.۲.۱.۰
اگر Brotli را از مخزن توزیع لینوکس دریافت کردهاید، باید اصلاحیه امنیتی همان توزیع را نصب کنید. پروژههایی که یک نسخه خصوصی یا داخلی از رمزگشای C را همراه خود عرضه میکنند نیز باید همان نسخه داخلی را بهروزرسانی کنند؛ بهروزرسانی کتابخانه سیستمی لزوماً چنین کپیهایی را اصلاح نمیکند.
نصب بسته جدید بهتنهایی کافی نیست. پردازش در حال اجرا همچنان نسخه قدیمی رمزگشا را در حافظه نگه میدارد و کانتینر نیز تا زمانی که ایمیج آن با پایه اصلاحشده بازسازی و دوباره مستقر نشود، آسیبپذیر باقی میماند. بهتر است نسخهها را در محیط تولید، آزمایشی، سامانههای یکپارچهسازی مداوم، ایمیجهای ساخت و رایانههای توسعهدهندگان بهصورت دستی بررسی کنید.
#جمعبندی
HTTP2Shell نشان میدهد یک کتابخانه فشردهسازی زیرساختی چگونه میتواند دامنه بزرگی از کلاینتها، سرورها و ابزارهای پردازش محتوا را درگیر کند. اگر نرمافزار شما داده Brotli را از منبعی خارج از کنترلتان دریافت میکند، نسخه وابستگیها را بررسی کنید، وصله را نصب کنید و راهاندازی مجدد یا استقرار دوباره را از قلم نیندازید.
مطالب مرتبط
برای ادامه مطالعه
این یادداشتها بر اساس موضوع مشترک، همپوشانی برچسبها و تازگی انتشار انتخاب میشوند.
تازهافبیآی TraderTraitor را عامل حمله به بایننس معرفی کرد
افبیآی میگوید گروه TraderTraitor، منتسب به کره شمالی، پشت حمله به بایننس بوده است. حالا از فعالان بازار رمزارز خواسته شده جلوی جابهجایی داراییهای مرتبط را بگیرند.
تازهآسیبپذیری SMS of Death اندروید گوشیهای وصلهنشده را مختل میکند
یک پیامک دستکاریشده میتونه بدون هیچ کلیکی تماس و ارتباط موبایلی بعضی گوشیهای اندرویدی رو قطع کنه. انتشار نمونه عملی حمله، بهروزرسانی امنیتی رو مهمتر کرده.
تازهگروه هکری BYOD به بیماران آسیبدیده پیشنهاد غرامت داد
هکرهای BYOD بعد از قفلکردن سامانههای بیمارستان دانشگاه نیومکزیکو، عذرخواهی کردهاند و میگویند به بیماران آسیبدیده ۲۵۰۰ دلار غرامت میدهند. دانشگاه هم تأکید کرده هیچ امتیازی به مهاجمان نداده است.
دیدگاهها
اولین نفری باش که دیدگاه میذاره