مایکروسافت و سایرین تلاش میکنند تا نقص «HTTP2Shell» را برطرف کنند که میتواند مشکل بعدی در سطح PHP باشد – مشکل Node.js ممکن است میلیونها سایت را نیز تحت تأثیر قرار دهد.
یک نقص RCE در بروتلی، یک الگوریتم فشرده سازی داده منبع باز ساخته شده توسط گوگل، پیدا شد.
یک نقص فشرده سازی مهم Brotli که HTTP2Shell نامیده می شود، می تواند خرابی حافظه و اجرای کد از راه دور را فعال کند.
این آسیبپذیری بر نرمافزارهای پرکاربرد از جمله Node.js، بستههای Python و برنامههای NET تأثیر میگذارد.
فروشندگان وصلههایی را منتشر کردند و از مدیران خواسته میشود علیرغم عدم بهرهبرداری در طبیعت، فورا بهروزرسانی شوند. چندین شرکت و پروژه فناوری اخیرا وصلههایی را برای آسیبپذیری به نام «HTTP2Shell» ارائه کردهاند که میتواند حملات اجرای کد از راه دور (RCE) را مانند آسیبپذیریهای اخیر «PHP2Shell» فعال کند.
HTTP2Shell در Brotli یافت شد، یک الگوریتم فشرده سازی داده منبع باز ساخته شده توسط گوگل که اندازه فایل ها را بدون از دست دادن اطلاعات کاهش می دهد، در نتیجه زمان انتقال سریعتر را در حالی که از پهنای باند کمتری استفاده می کند، به دست می آورد.
این یک الگوریتم محبوب است که در وب برای فشرده سازی پاسخ های HTTP مانند HTML، CSS و جاوا اسکریپت استفاده می شود و توسط اکثر مرورگرهای وب، سرورها و کتابخانه های نرم افزار پشتیبانی می شود.
رفع و وصله
خود باگ به عنوان یک نقص نوشتن خارج از محدوده توصیف می شود و همچنین Node2Shell و Broccoli2Shell نامیده می شود. این به عنوان CVE-2026-111497 ردیابی شده است و نمره شدت 9.2/10 (بحرانی) داده شده است. با توجه به پایگاه داده ملی آسیب پذیری، این اشکال باعث سرریز بافر می شود که می تواند منجر به افشای حافظه، انکار سرویس و در برخی موارد حتی اجرای کد از راه دور شود.
Brotli را می توان در انواع نرم افزارها یافت که اکنون همه آنها در معرض خطر هستند. این شامل Node.js، brotlicffi، کلاینتهای HTTP مانند Requests، urllib3، httpx و aiohttp و همچنین برنامههای دیگری است که از رمزگشاهای Brotli مانند استقرار Bun و Envoy استفاده میکنند.
گوگل در 21 اکتبر 2026 با انتشار نسخه های Brotli 1.0.10، 1.1.1 و 1.2.1 این باگ را برطرف کرد. با این حال، نرمافزارهای دیگری نیز وجود دارند که نسخههای آسیبپذیر Brotli را بستهبندی میکنند یا از آن استفاده میکنند، بنابراین بهروزرسانی کتابخانه Google به تنهایی ممکن است از همه برنامهها محافظت نکند.
در آخر هفته گذشته، مایکروسافت یک بهروزرسانی اضطراری برای مرتبسازی باگ در داتنت منتشر کرد و گفت که بهرهبرداری موفقیتآمیز میتواند منجر به افزایش امتیاز شود.
از آنجایی که Node.js رمزگشای Brodli را نیز به همراه دارد، Patch خود را در 21 اکتبر منتشر کرد. سازمان توضیح داد: «یک سوئیچ بلوک نامعتبر بهعنوان نیاز موقت به ورودی بیشتر بهجای یک خطای قالب دائمی گزارش شد، بنابراین رمزگشای جریان همچنان بایتهای ورودی را به یک بافر داخلی هشت بایتی اضافه میکند. مهاجمی که میتواند دادههای Brotli را که یک برنامه آنها را با node:zlib از حالت فشرده خارج میکند، فراهم کند، میتواند حافظه پردازش را خراب کند، که میتواند منجر به خرابی، افشای حافظه پردازش یا اجرای کد از راه دور شود.»
گفته شد این آسیب پذیری Node.js 26.x، 24.x و 22.x را تحت تأثیر قرار می دهد.
BleepingComputer گزارش می دهد که بسته های PyPI حاوی اصلاحات دو روز بعد، در 23 اکتبر در دسترس قرار گرفتند.
در اینجا لیست دقیق نسخه های وصله شده است:
Google Brotli 1.0.10، 1.1.1، 1.2.1
Node.js 22.23.4، 24.22.1، 26.12.1
Python Brotli 1.2.1
Python brotlicffi 1.2.1.0
وب سایت اختصاصی
در همان زمان، شخصی یک وبسایت اختصاصی به نام Broccoli2Shell.com راهاندازی کرد که این مشکل را شرح میدهد، نسخههای آسیبپذیر را ردیابی میکند و در مورد سوءاستفادههای احتمالی در طبیعت گزارش میدهد. در سایت، گفته میشود که سوءاستفادههای اثبات مفهوم (PoC) برای این باگ از قبل وجود دارد، اما گزارشهایی مبنی بر بهرهبرداری مخرب در طبیعت هنوز دیده نشده است.
این سایت میگوید: «یک اثبات عمومی مفهوم در GitHub در تاریخ 22/10/2026 ظاهر شد. طبق گزارشات، اجرای کد فقط در یک بیلد عمدا ضعیف شده است. در بیلدهای استاندارد باعث خرابی و خواندن حافظه محدود می شود.
به مدیران سیستم توصیه می شود در اسرع وقت وصله های ارائه شده را اعمال کنند. فرآیندهای آسیبدیده را مجددا راهاندازی کنید و تصاویر کانتینر آسیبدیده را دوباره بسازید و مجددا مستقر کنید.
کسانی که نمی توانند فورا این کار را انجام دهند می توانند تا حدودی خطرات را کاهش دهند. کاربران پایتون باید بسته های آسیب پذیر Brotli و brotlicffi را حذف کنند و وابستگی های اختیاری مانند httpx[brotli] را حذف کنند.
مدیران همچنین میتوانند پروکسیها، متعادلکنندههای بار یا فایروالهای برنامه وب (WAF) را برای رد درخواستهای دریافتی حاوی بدنههای فشرده شده توسط Brotli پیکربندی کنند. شایان ذکر است که این کار از برنامه هایی که پاسخ های HTTP مخرب را دانلود و از حالت فشرده خارج می کنند محافظت نمی کند.
گفته شد Node.js راه حل کاملی ندارد.
متن اصلی (انگلیسی)
Microsoft and others scramble to patch 'HTTP2Shell' flaw which could be the next PHP-level issue — Node.js problem may also affect millions of sites
An RCE flaw was found in Brotli, a Google-built open source data compression algorithm.