تکین آنالیز | زلزله Broccoli2Shell در زیرساخت وب؛ کالبدشکافی آسیبپذیری بحرانی دکودر Brotli (CVE-2026-111497)
در اکوسیستم پیچیده زیرساختهای اینترنت امروزی، فشردهسازی دادهها شریان حیاتی انتقال سریع وبپیجها، اسکریپتها و بستههای داده به شمار میرود. الگوریتم بروتلی (Brotli) که در سال ۲۰۱۵ توسط مهندسان گوگل به عنوان جایگزین مدرن و فوقالعاده متراکمتر استاندارد سنتی Gzip و Deflate معرفی شد، طی یک دهه گذشته به استانداردی فراگیر در پروتکلهای HTTP/2 و HTTP/3 تبدیل شده است. بیش از ۹۵ درصد مرورگرهای جهان و بخش اعظم وبسرورهای مدرن، ترافیک متنی خود را با پسوند فشردهسازی br مبادله میکنند.
اما در اکتبر ۲۰۲۶، انتشار ناگهانی گزارشهای مربوط به یک آسیبپذیری سرریز حافظه بحرانی با شناسه رسمی CVE-2026-111497 و نامهای غیررسمی Broccoli2Shell و Node2Shell، شوکی عظیم به ارکان امنیت سایبری جهان وارد ساخت. این رخنه امنیتی که نمره حساسیت ۹.۲ از ۱۰ را در مقیاس CVSS v3.1 دریافت کرده است، ناشی از یک خطای محاسباتی در بررسی مرزهای بافر در فایل منبع c/dec/decode.c درون کتابخانه مرجع C بروتلی است؛ خطایی که امکان بازنویسی فراتر از انتهای بافر حافظه و مسمومسازی هیپ (Heap Corruption) را فراهم میآورد.
ابعاد فاجعه زمانی آشکار شد که پژوهشگران امنیتی پی بردند کتابخانه C آسیبپذیر گوگل، به صورت استاتیک در رانتایم نودجیاس (Node.js) که شاکله میلیونها وبسرور در سراسر جهان است، بستهبندی شده است. حملهکننده بدون نیاز به هیچگونه نام کاربری یا گذرواژه، میتواند صرفاً با ارسال یک درخواست HTTP با بدنه فشردهشده مهندسیشده با الگوریتم br، فرآیند دکود کردن را وادار به سرریز حافظه کرده و با اجرای کدهای شلکد دلخواه، کنترل کامل وبسرور را به چنگ آورد.
موضوع به نودجیاس محدود نماند؛ دامنه آلودگی به سرعت دامن رانتایم مدرن بان (Bun)، پکیجهای رسمی پایتون از جمله brotli و brotlicffi، پروکسیهای مقیاس کلان Envoy و حتی کنترلرهای ورودی شبکه کوبرنتیز را گرفت. در شرایطی که شرکتهای بزرگ زیرساختی در تلاش برای اعمال پچهای اضطراری هستند، درک عمیق مهندسی این رخنه و نحوه سوءاستفاده مهاجمان از آن، برای مدیران سیستم، توسعهدهندگان بکاند و مهندسان ارشد امنیت شبکه حیاتی است.
ارزیابی استراتژیک و نکات کلیدی در یک نگاه
کالبدشکافی ساختار الگوریتم بروتلی و منشا مهندسی باگ
برای درک علت وقوع این باگ فاجعهبار در کتابخانهای که سالها در امنترین سیستمهای وب جهان میزبانی شده است، باید ساختار داخلی فشردهسازی بروتلی را بررسی کرد. بروتلی یک الگوریتم فشردهسازی بدون اتلاف اطلاعات است که از ترکیب فرمت LZ77 مدرن، کدگذاری هافمن پیشرفته (Huffman Coding) و یک دیکشنری استاتیک عظیم با اندازه ۱۲۲ کیلوبایت تشکیل شده است. این دیکشنری استاتیک حاوی پرکاربردترین واژگان، تگهای HTML و قطعات کدهای وب است که به بروتلی برتری محسوسی نسبت به Gzip در کاهش ۲۰ تا ۳۰ درصدی پهنای باند اعطا میکند.
در جریان پردازش دادههای فشرده، دکودر بروتلی نیازمند ایجاد و مدیریت حلقههای بافر چرخشی (Ring Buffers) در حافظه است. اندازه پنجره لغزان (Sliding Window Size) در بروتلی میتواند تا حداکثر ۱۶ مگابایت افزایش یابد. در طول عملیات دیکامپرس، کدهای ورودی به بلوکهای متاتلگ تقسیم میشوند و دکودر با بررسی هدر هر بلوک، جدولهای درختی هافمن را به صورت دینامیک درون ساختارهای هیپ حافظه تخصیص میدهد.
نقطه شکست مهندسی در فایل منبع c/dec/decode.c در تابع تخصیص طول متغیرها و بازسازی درختهای کدگذاری هافمن متمرکز است. هنگامی که یک مهاجم بستهای از دادههای بروتلی حاوی مقادیر ناهنجار و دستکاریشده در متغیرهای طول سمبلها (Symbol Lengths) ارسال میکند، دکودر در اعتبارسنجی حد بالای بافر مقصد دچار خطای محاسباتی عدد صحیح (Integer Miscalculation) میشود. در نتیجه این خطا، دکودر بروتلی فرض میکند بافر مقصد حافظه کافی برای ذخیره بایتهای بعدی را در اختیار دارد، در حالی که اشارهگر حافظه از انتهای بافر تخصیصیافته فراتر رفته است.
این ناهماهنگی مرزی، به مهاجم اجازه میدهد بایتهای دلخواه خود را فراتر از محدوده مجاز بافر در حافظه رم سرور بنویسد. با توجه به اینکه دادههای بازنویسیشده میتوانند فرادادههای بلوکهای مجاور در هیپ (Heap Chunk Metadata)، اشارهگرهای توابع (Function Pointers) یا ساختارهای جدول متدهای مجازی (vtable) را آلوده سازند، کنترل مسیر اجرای برنامه (Control Flow Hijacking) برای یک نفوذگر مجرب با صرف کمترین زحمت امکانپذیر میشود.
استاندارد RFC 7932 که مشخصات فنی فرمت بروتلی را تدوین کرده است، تصریح میکند که دیکودرها باید پیش از پردازش هر بلوک ورودی، صحت فضای هافمن را به طور کامل احراز نمایند. اما در پیادهسازی مرجع زبان C که توسط مهندسان گوگل توسعه یافته بود، به منظور افزایش حداکثری سرعت دیکامپایل و کاهش سربار پردازشی بر روی دستگاههای کممصرف، برخی از بررسیهای تکراری حاشیهای (Boundary Invariants) در مسیر سریع پردازش (Fast Path) نادیده گرفته شده بود. همین بهینهسازی افراطی در نهایت به پاشنه آشیل امنیت وب بدل گردید.
تفاوت بنیادین بروتلی با استانداردهای قدیمیتر نظیر Deflate در این است که بروتلی امکان تعریف جدولهای هافمن سفارشی با ساختار درختی بسیار فشرده را فراهم میکند. مهاجم با سوءاستفاده از این انعطافپذیری نحوی، میتواند مقادیر پیشوند و طول سمبلها را به گونهای مهندسی کند که موتور ریاضی بازسازی درخت در تابع BrotliBuildHuffmanTable، ظرفیت جدول را بسیار کوچکتر از تعداد گرههای واقعی ارزیابی نماید و به این ترتیب، جریان سرازیر شدن بایتها به حافظه غیرمجاز آغاز شود.
چرا این تحول بازی را تغییر میدهد؟
بحران Broccoli2Shell نشان میدهد که استانداردهای بنیادین وب تا چه اندازه به چند کتابخانه باستانی نوشتهشده به زبان C وابسته هستند و یک باگ جزئی در مدیریت حافظه میتواند بزرگترین زنجیرههای نرمافزاری جهان را زمینگیر کند.
راستیآزمایی فنی | شایعه در برابر واقعیت مهندسی
برخی گزارشهای اولیه ادعا کردند آسیبپذیری صرفاً منجر به خطای انکار سرویس (DoS) و ریاستارت شدن نودجیاس میشود.
کدهای اثبات مفهوم پژوهشگران امنیتی نشان داد که با تکنیک آراستن هیپ، اجرای کامل شلکد و سرقت دسترسی روت کاملاً میسر است.
دایره آتش؛ گستره آلودگی رانتایمهای Node.js، Bun و پکیجهای پایتون
دامنه نفوذ این آسیبپذیری به حدی فراگیر است که تقریباً تمام لایههای مدرن توسعه وب و میکروسرویسها را تحت تاثیر قرار میدهد. همانطور که پیشتر در کالبدشکافی پایپلاینهای سطح پایین در درایور گرافیکی انویدیا و همچنین در گزارش مهندسی معکوس کدهای باستانی C با هوش مصنوعی بررسی کردیم، هرگونه خطای مدیریت حافظه در لایههای زیرین میتواند کل معماری را فرو بریزد. در رانتایم نودجیاس (Node.js)، ماژول بومی فشردهسازی zlib مستقیماً از کتابخانه C بروتلی برای هندل کردن توابع createBrotliDecompress و createBrotliCompress استفاده میکند. این بدان معناست که هر فریمورک معروفی نظیر اکسپرس (Express.js)، فستیفای (Fastify)، کوا (Koa) یا نستجیاس (NestJS) که میدلورهای فشردهسازی خودکار بدنه ریکوئستها را فعال کرده باشد، بدون هیچ تنظیم خاصی آسیبپذیر است.
رانتایم بان (Bun) که به سرعت سرسامآور خود در پردازش کدهای جاوا اسکریپت و تایپ اسکریپت شهرت دارد نیز از این مهلکه در امان نمانده است. سازندگان بان برای ارائه حداکثر راندمان I/O، نسخه مرجع دکودر C بروتلی را مستقیماً در باینری استاتیک خود گنجانده بودند. با انتشار خبر این آسیبپذیری، مشخص شد که تمامی نسخههای بان زیر ۱.۱.۳۰ در هنگام فراخوانی کلاسهای decompress وابسته به بروتلی، دچار همان سرریز بافر مرگبار میشوند.
در جهان پایتون، وضعیت به مراتب نگرانکنندهتر است. پکیجهای معروفی مانند brotli و brotlicffi که به عنوان افزونههای باینری C برای هندل کردن پاسخهای وب در کتابخانههای محبوبی چون requests، httpx، urllib3 و فریمورکهای وب آسنکرون نظیر aiohttp و FastAPI نصب میشوند، همگی از کد مبدا آسیبپذیر گوگل کامپایل شدهاند. بنابراین، یک اسکریپت خزنده وب (Web Scraper)، ربات دادهکاوی یا کلاینت هوش مصنوعی نوشتهشده به زبان پایتون، با ارسال درخواست به یک سرور آلوده یا دریافت پاسخ مخرب فشردهشده با بروتلی، در لایه کلاینت به طور کامل تسخیر میشود.
علاوه بر رانتایمهای سطح بالا، پروکسیهای پیشرفته لایه شبکه از جمله Envoy Proxy و کنترلرهای ورودی (Ingress Controllers) در معماریهای کوبرنتیز که مسئولیت تخلیه بار فشردهسازی (Compression Offloading) را بر عهده دارند، در صورتی که برای پردازش و بازگشایی هدر Content-Encoding: br پیکربندی شده باشند، در معرض حمله فرار از کانتینر و سقوط کل کلاستر ابری قرار دارند.
پیچیدگی بنیادین این آسیبپذیری در پیوند عمیق میان حافظه مدیریتشده V8 و حافظه بومی (Native Memory) سیستمعامل ریشه دارد. در معماری نودجیاس، اشیای بافر بزرگ از طریق تخصیصدهنده حافظه C++ یا استخر حافظه libuv در فضای هیپ سیستمعامل قرار میگیرند نه در هیپ زبالهروب V8. این جداسازی ساختاری موجب میشود که مکانیزمهای محافظتی زبالهروب V8 (Garbage Collector) هیچگونه نظارتی بر سلامت اشارهگرهای دکودر C بروتلی نداشته باشند. در نتیجه، هنگام بروز سرریز بافر، بایتهای مخرب بدون هیچ مانعی در استخر بومی سیستمعامل پخش میشوند.
محیطهای ابری بدون سرور (Serverless) نظیر AWS Lambda و توابع لبه کلودفلر، به دلیل ماهیت چرخه حیات و بازیافت کانتینرهای نیمهگرم (Warm Containers)، در معرض ریسک تصاعدی قرار دارند. در این سیستمها، تکرار حملات بر روی یک نمونه اجرایی مشترک، امکان اسکن ساختار حافظه و نقشهبرداری گامبهگام از آدرسهای حافظه را برای نفوذگر فراهم میآورد. بدین ترتیب، حتی تمهیدات حفاظتی لایه مجازیسازی نیز در برابر پروسههای آلوده به شلکد کارایی خود را از دست میدهند.
جعبه اصطلاحات تخصصی تکین
مهندسی معکوس سناریوی حمله و سازوکار اکسپلویت RCE
تحلیل کدهای اثبات مفهوم (PoC) منتشرشده توسط هکرهای کلاهسفید نشان میدهد که چرا این آسیبپذیری پتانسیل تخریب بسیار بالاتری نسبت به یک کرش ساده سیستم دارد. اکسپلویت با ارسال یک هدر HTTP دستکاریشده با فیلد Content-Encoding: br به سمت سرور آغاز میشود. مهاجم درون بدنه درخواست، یک استریم باینری به ظاهر معتبر بروتلی قرار میدهد که ساختار هدر بلوک متا و درختهای هافمن آن با ابزارهای فازینگ مهندسی معکوس شده است.
در گام اول، مهاجم از تکنیک آراستن هیپ (Heap Feng Shui) استفاده میکند. با ارسال چندین درخواست با طولهای مشخص، بافرهای ورودی در حافظه نودجیاس به نحوی تخصیص داده میشوند که درست در کنار بافر هدف دکودر بروتلی، یک شیء مهم با اشارهگر تابع نظیر Buffer ساختار V8 یا بافت رویداد libuv قرار گیرد. این چیدمان، پیشنیاز حیاتی برای بهرهبرداری موفق از سرریز بایتها است.
در گام دوم، هنگامی که دکودر تابع بازگشایی را اجرا میکند، متغیر شمارنده بایتها به دلیل ارسال طولهای غیرمجاز هافمن، از سقف تعیینشده عبور میکند. بایتهای اضافه از مرز بافر نشت کرده و فرادادههای بلوک کناری هیپ را با آدرسهای دلخواه بازنویسی مینمایند. در این مرحله، پروتکلهای امنیتی سیستمعامل نظیر ASLR (تصادفیسازی فضای آدرس) و DEP (جلوگیری از اجرای دادهها) از طریق تکنیکهای زنجیرهسازی ROP (Return-Oriented Programming) دور زده میشوند.
در گام سوم، مهاجم با رونویسی جدول متدهای مجازی (vtable) یک شیء C++ داخلی نودجیاس، جریان کنترل پردازنده را به سمت گجتهای اجرایی در باینری نود هدایت میکند. از آنجا که باینری نودجیاس شامل مگابایتها کد ماشین اجرایی معتبر است، یافتن گجتهای مناسب برای فراخوانی سیستمی mprotect یا execve بدون نیاز به تزریق مستقیم شلکد به صفحات غیرقابل اجرا میسر میشود.
در نهایت، با انحراف اشارهگر فراخوانی به سمت شلکد تزریقشده در حافظه، کد مخرب در سطح اختیارات کاربری اجرای پروسه نودجیاس فعال میشود. مهاجم با باز کردن یک ریورسشل (Reverse Shell) بر روی پورت دلخواه، دسترسی کامل ترمینال به سیستمعامل سرور، فایلهای محرمانه، کلیدهای دسترسی API و اطلاعات دیتابیس را بدون ثبت کوچکترین ردی در لاگهای عادی وبسرور به دست میآورد.
نمودار ستونی و ماتریس مقایسه مشخصات فنی و بنچمارک
| شاخص ارزیابی پدافندی | الگوریتم بروتلی آسیبپذیر (قبل پچ) | وضعیت پس از اعمال وصله امنیتی |
|---|---|---|
| نمره بحرانی خطر (CVSS) | ۹.۲ بحرانی (Critical RCE) | ۰.۰ ایمن (پچشده در libbrotli 1.2.1) |
| زمان مورد نیاز برای اکسپلویت هیپ | ۱۸ میلیثانیه با ارسال پکت دستکاریشده | مسدودسازی کامل و پسزدن فوری پکت با خطای ۴۰۰ |
| ریسک تسخیر کامل سرور | ۱۰۰ درصد در صورت دیکامپرس ورودی ناشناس | صفر درصد با ایمنسازی بررسی مرزهای بافر C |
ترمینال سایبری و لاگ تلهمتری بنچمارک
ماتریس ارزیابی ریسک و پدافند سایبری
| بردار تهدید / آسیبپذیری | سطح ریسک | راهکار دفاعی و پدافند سایبری |
|---|---|---|
| وبسرورهای عمومی نودجیاس بدون فایروال WAF | بحرانی (CVSS 9.2) | ارتقای فوری به نسخههای 22.23.4، 24.22.1 یا 26.12.1 نودجیاس. |
| میکروسرویسهای پردازش هوش مصنوعی با پایتون | ریسک بالا | آپدیت پکیجهای پایتون با اجرای pip install --upgrade brotli brotlicffi. |
| سرورهای پروکسی معکوس انجینایکس و کلودفلر | ایمن / مهارشده | حذف هدر Accept-Encoding حاوی مقدار br در لایه لبه قبل از رسیدن به بکاند. |
راهنمای عملیاتی و گامبهگام مهار فوری در سرورهای ابری و وبسایتها
مدیران سیستم و مهندسان دواپس در مواجهه با آسیبپذیریهای روز-صفر زنجیره تامین در سطح CVE-2026-111497، نباید تا زمان انتشار کامل پکیجهای رسمی لینوکس دست روی دست بگذارند. راهکار پدافندی استاندارد در سه سطح دفاع در عمق (Defense in Depth) تعریف میشود: ایزولهسازی لایه لبه، ارتقای رانتایم و مسدودسازی موقت هدرهای فشردهسازی در پروکسیهای معکوس.
در گام اول، اگر از سرویسهای کلودفلر (Cloudflare)، فستلی یا وبسرور انجینایکس (Nginx) در جلوی نودجیاس استفاده میکنید، سریعترین روش ایمنسازی موقت، مسدودسازی بازگشایی کدهای br توسط سرور اصلی است. برای این منظور در فایل کانفیگ Nginx، در بلوک location دستور proxy_set_header Accept-Encoding "gzip, deflate"; را درج نمایید تا سرور مبدا مجبور به استفاده از استانداردهای امن فشردهسازی شود و هرگز بستههای بروتلی را آنپک نکند.
در گام دوم، فرآیند ارتقای رانتایم نودجیاس باید به عنوان اولویت شماره یک زیرساخت اجرا گردد. بنیاد نودجیاس وصلههای اضطراری رسمی را در قالب نسخههای ۲۲.۲۳.۴ (برای خط انتشار LTS)، ۲۴.۲۲.۱ و ۲۶.۱۲.۱ عرضه کرده است. توجه داشته باشید که اگر هنوز از نسخههای بازنشسته نظیر نود ۲۰ یا ۱۸ در پروداکشن استفاده میکنید، هیچ وصله رسمی برای آنها منتشر نخواهد شد و مهاجرت فوری به نود ۲۲ تنها راه فرار از نفوذ است.
در گام سوم، تیمهای هوش مصنوعی و پایتون باید تمامی داکرایمیجها و محیطهای مجازی (Virtualenv) خود را بررسی کنند. اجرای دستور pip install --upgrade brotli brotlicffi در فایل Dockerfile و بیلد مجدد کانتینرها سبب استفاده از نسخه ۱.۲.۱ کتابخانه C بروتلی خواهد شد که با بررسی سختگیرانه طول سمبلهای هافمن، مانع از وقوع هرگونه سرریز بافر در حافظه میشود.
بررسی کد منبع پچ در فایل c/dec/decode.c نشان میدهد که مهندسان امنیت گوگل چگونه این نشتی حافظه را مسدود ساختهاند. در نسخه ۱.۲.۱، توابع اعتبارسنجی پیشدستی (Pre-flight Validation) به ماژول BrotliBuildHuffmanTable افزوده شده است تا پیش از تخصیص هرگونه حافظه برای بافر رینگ، انطباق دقیق مجموع طول کدهای هافمن با ظرفیت مجاز جدول بررسی شود. در صورتی که بایتهای متادیتا شامل مقادیر ناهماهنگ باشند، دکودر بلافاصله اجرای حلقه را متوقف کرده و خطای BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE را برمیگرداند.
در سطح پایش بلادرنگ و تلهمتری سرورها، استفاده از ابزارهای امنیتی مبتنی بر eBPF نظیر فالکو (Falco) و تریسی (Tracee) نقشی حیاتی در مهار نفوذ ایفا میکند. مهندسان دوآپس باید قوانینی تدوین نمایند که در صورت ایجاد پروسههای مشکوک فرعی نظیر /bin/sh یا /bin/bash توسط پروسه والد node یا python، هشدار آنی صادر شده و اتصال سوکت مربوطه بلافاصله در لایه هسته لینوکس قطع گردد. این راهکار پدافندی حتی در صورت موفقیت اکسپلویت اولیه، مانع از پایدارسازی بدافزار و دستیابی به شل تعاملی میشود.
برای شرکتها و استارتآپهای ایرانی، بحران Broccoli2Shell دارای پیچیدگیهای مضاعف است. اختلالات اینترنت بینالملل، فیلترینگ دامنههای رسمی مخازن npm و PyPI، و تاخیر در همگامسازی سرورهای میرور داخلی، فرآیند دریافت سریع وصلههای امنیتی را با کندی مواجه میسازد. به مدیران سرورهای ایرانی اکیداً توصیه میشود پیش از در دسترس قرار گرفتن آپدیتهای پکیجمنیجرها، سیاست حذف ترافیک ورودی فشرده با پسوند br را مستقیماً در فایروالهای محلی سرور پیادهسازی کنند تا خطر نفوذ به صفر برسد.
علاوه بر این، در معماریهای ترکیبی هاستینگ داخلی و دیتاسنترهای بومی، بهرهگیری از سیستمهای احراز هویت دوعاملی سختگیرانه در سطح SSH و ایزولهسازی دسترسی روت کانتینرها از طریق مکانیزمهای AppArmor و SELinux الزامی است. اجرای سرویسهای نودجیاس با دسترسی کاربر غیر ریشه (Non-root user) در ترکیب با فایلسیستمهای فقطخواندنی (Read-only rootfs) مانع از بارگذاری اسکریپتهای آلوده به دیسک سرور در سناریوهای نفوذ پیشرفته خواهد شد.
📚 پروندههای فوقمحرمانه و مرتبط در تکینگیم
اگر میخواهید فراتر از این هفتهنامه، به اعماق تاریکترین رخدادهای سایبرنتیک و طغیانهای پنهان هوش مصنوعی نفوذ کنید، کالبدشکافی این سه پرونده اختصاصی در تکین گاراژ را از دست ندهید:
داشبورد دایرهای، نمودار رشد و جدول شاخصهای مالی و سهم بازار
| روش فشردهسازی وب | سهم از کل ترافیک جهانی | وضعیت امنیتی در بحران فعلی |
|---|---|---|
| الگوریتم بروتلی (Brotli br) | ۶۸ درصد ترافیک وب | نیازمند پچ فوری جهت رفع باگ سرریز هیپ |
| الگوریتم سنتی جیزیپ (Gzip) | ۲۳ درصد ترافیک وب | کاملاً ایمن و مصون در برابر اکسپلویت CVE-2026-111497 |
| سایر روشها (Zstd / Deflate) | ۹ درصد ترافیک وب | استفاده محدود در شبکههای محلی بدون ریسک گزارششده |
دماسنج احساسات بازار | گیج دایرهای و منحنی پذیرش S-Curve
تحلیل دماسنج بازار: علیرغم واکنش سریع بنیاد نودجیاس و جامعه اوپنسورس در انتشار وصلهها، هنوز نزدیک به ۲۸ درصد سرورهای عمومی جهان به دلیل غفلت مدیران در معرض حمله مستقیم قرار دارند.
تایملاین رویدادها | کرونولوژی تکوین، افشا و مهار بحران Broccoli2Shell
| تاریخ / مقطع | رویداد شاخص امنیتی و کشف آسیبپذیری | پیامدهای فنی در اکوسیستم اینترنت |
|---|---|---|
| سپتامبر ۲۰۲۶ | کشف باگ در فازینگ دکودر C بروتلی | ارسال گزارش محرمانه امنیتی به تیم امنیت گوگل و پروژه نودجیاس. |
| ۱۸ اکتبر ۲۰۲۶ | اختصاص شناسه رسمی CVE-2026-111497 | تعیین نمره ۹.۲ و آغاز آمادهسازی کدهای پچ در برنچهای محرمانه. |
| ۲۲ اکتبر ۲۰۲۶ | افشای عمومی و انتشار کدهای POC | آغاز اسکنهای گسترده اینترنتی توسط گروههای سایبری و به صدا درآمدن زنگ خطر جهانی. |
| ۲۳ اکتبر ۲۰۲۶ | انتشار وصله اضطراری نودجیاس و بان | عرضه نسخههای ایمن ۲۲.۲۳.۴، ۲۴.۲۲.۱ و ۲۶.۱۲.۱ و پچ رسمی libbrotli. |
| ۲۵ اکتبر ۲۰۲۶ | مهار ۷۲ درصدی و تثبیت سپرهای WAF | فراگیری قوانین فایروال در کلودفلر و انجینایکس و ایمنسازی سرورهای سازمانی. |
بحران ساختاری وابستگیهای C و ضرورت مهاجرت به زبانهای حافظهامن
بحران CVE-2026-111497 یادآور واقعیتی تلخ و هشداردهنده در اکوسیستم فناوری مدرن است: میلیاردها خط کد پیچیده جاوا اسکریپت، پایتون و گو که بالاترین سطوح تجرید نرمافزاری را ارائه میدهند، بر روی فونداسیونی شکننده از کتابخانههای قدیمی زبان C بنا شدهاند. زبانهای بدون مدیریت حافظه (Memory-Unsafe) نظیر C و C++، هرچند حداکثر سرعت پردازشی را تضمین میکنند، اما هر اشتباه کوچک برنامهنویس در محاسبه طول یک اشارهگر میتواند کل قلعه دیجیتال را فرو بریزد.
تکرار حوادثی نظیر هارتبلید در OpenSSL، باگ Log4j در جاوا، و اکنون رخداد Broccoli2Shell در کتابخانه رسمی فشردهسازی گوگل، نشان داد که پارادایم بازنویسی مولفههای حیاتی با زبانهای حافظهامن (Memory-Safe) نظیر راست (Rust) دیگر یک ژست آکادمیک نیست، بلکه یک ضرورت پدافند ملی است. اگر ماژول دکودر بروتلی با زبان راست و فاقد بلوکهای unsafe پیادهسازی شده بود، سامانه مدیریت حافظه در زمان کامپایل (Borrow Checker) مانع از بروز هرگونه سرریز بافر میشد.
آمارهای رسمی آژانس امنیت سایبری ایالات متحده (CISA) و پروژههای امنیتی کرومیوم نشان میدهد که بالغ بر ۷۰ درصد از آسیبپذیریهای روز-صفر بحرانی ناشی از مدیریت نادرست حافظه در کدهای C و C++ است. هزینههای تحمیلشده به سازمانها بابت مهار اضطراری، بازرسی کدهای باینری، و بازسازی اعتبار خدشهدارشده بسیار فراتر از هزینه بازنویسی زیرساختها با زبانهای مدرن است. در دنیای الگوریتمهای فشردهسازی، کریتهای موفقی نظیر brotli-rs و flate2 در اکوسیستم راست ثابت کردهاند که دستیابی به امنیت مطلق حافظه بدون افت راندمان پردازشی کاملاً امکانپذیر است.
پروژههای بزرگی همچون بنیاد نودجیاس و بنیاد لینوکس اکنون تحت فشار فزایندهای قرار دارند تا ماژولهای بومی (Native Bindings) خود را به سمت ماژولهای تاییدشده و ایزولهشده بازنویسی نمایند. تا زمانی که این بازسازی بنیادین صورت نگیرد، مهندسان امنیت در سراسر دنیا محکوم به تکرار سناریوهای مهار اضطراری و بیدارمانیهای شبانه برای خنثیسازی بمبهای ساعتی مخفی در کدهای C چهلساله خواهند بود.
تحول واقعی نیازمند یک استراتژی هماهنگ در سطح زنجیره تامین نرمافزار است. تیمهای مهندسی زیرساخت باید در توافقنامههای سطح خدمات (SLA) خود، ممیزی امنیتی وابستگیهای بومی را اجباری کرده و استفاده از مکانیزمهای Memory Tagging Extension (MTE) در پردازندههای نسل جدید ARM و قابلیتهای Control-flow Enforcement اینتل را در سطح سیستمعامل فعال کنند تا ضریب ایمنی زیرساختها در برابر خطاهای انسانی به حداکثر برسد.
- واکنش سریع بنیاد نودجیاس و انتشار پچهای جامع کمتر از ۴۸ ساعت پس از افشا.
- امکان مهار موقت و فوری در لایه لبه با غیرفعالسازی هدرهای فشردهسازی بروتلی.
- آگاهیبخشی گسترده در صنعت جهت حذف وابستگیهای C و تسریع مهاجرت به زبان Rust.
- ارائه شاخصهای شفاف کشف و لاگهای اعتبارسنجی توسط جامعه کلاهسفید.
- خطر اجرای کد از راه دور با امتیاز فوق بحرانی ۹.۲ بدون نیاز به دسترسی اولیه.
- آلودگی گسترده در رانتایمهای محبوب شامل نود، بان و کتابخانههای بنیادین پایتون.
- عدم ارائه پچ رسمی برای نسخههای منقضیشده نظیر نود ۲۰ و ۱۸ در پروداکشن.
حکم نهایی تحریریه و فهرست منابع رسمی
اقدام فوری و بدون فوت وقت برای ایمنسازی سرورها
با توجه به دسترسی فعال گروههای نفوذ به کدهای اکسپلویت، تعلل در ارتقای نودجیاس و ایزولهسازی هدرهای بروتلی به منزله واگذاری دسترسی روت سرور به مهاجمان است.
- د هکر نیوز (The Hacker News): گزارش فنی پیرامون رخنه دکودر بروتلی و آسیبپذیری RCE در نودجیاس و بان
- پایگاه ملی آسیبپذیری (NVD): مستندات ارزیابی ریسک و مشخصات پایگاه داده CVE-2026-111497
- بنیاد رسمی نودجیاس (Node.js): بیانیه امنیتی و دانلود نسخههای پچشده اضطراری نودجیاس
- کوالیس سکیوریتی (Qualys): کالبدشکافی مکانیسم سرریز بافر هیپ در کتابخانه مرجع C فشردهسازی بروتلی
پرسشهای متداول و تحلیلهای فنی
آسیبپذیری CVE-2026-111497 دقیقاً چه سازوکاری دارد و چرا امتیاز ۹.۲ دریافت کرده است؟
این رخنه یک سرریز بافر مبتنی بر هیپ (Heap Buffer Overflow) در فایل decode.c دکودر C بروتلی است. به دلیل اینکه مهاجم بدون نیاز به لاگین و صرفاً با ارسال هدرهای فشردهسازی مخرب میتواند کد دلخواه را روی سرور اجرا کند، در رده بحرانی ۹.۲ قرار گرفته است.
کدام نسخههای نودجیاس به این آسیبپذیری آلوده هستند و به چه نسخهای باید ارتقا یابند؟
تمامی نسخههای ۲۲، ۲۴ و ۲۶ نودجیاس تا قبل از انتشار پچ آسیبپذیر بودند. مدیران باید سریعاً سیستمهای خود را به نسخههای 22.23.4، 24.22.1 یا 26.12.1 ارتقا دهند.
آیا سرویسهای نوشتهشده با پایتون نظیر FastAPI یا Django نیز در خطر هستند؟
بله؛ اگر این سرویسها از پکیجهای brotli یا brotlicffi برای دیکامپرس کردن ریکوئستها یا ریسپانسها استفاده کنند، در معرض حمله مستقیم قرار دارند و باید سریعاً به آخرین نسخه پایتونی پچشده ارتقا یابند.
سریعترین اقدام برای ایمنسازی سرورها تا قبل از ارتقای باینریهای نودجیاس چیست؟
سریعترین راهکار، حذف مقدار br از هدر Accept-Encoding در سطح پروکسیهای معکوس نظیر Nginx یا غیرفعالسازی پذیرش ترافیک فشرده با بروتلی در فایروال کلودفلر است تا سرورها به سمت استانداردهای ایمن Gzip هدایت شوند.
چرا نسخههای قدیمی مانند Node.js 20 پچ امنیتی رسمی دریافت نکردهاند؟
به دلیل اینکه نودجیاس ۲۰ به پایان دوره پشتیبانی رسمی خود (End-of-Life) رسیده است، بنیاد نود هیچ پچی برای آن صادر نکرده و شرکتها چارهای جز ارتقای فوری به خط انتشار نود ۲۲ ندارند.
آیا کلاینتها و مرورگرهای کاربران نهایی نیز در خطر این حمله قرار دارند؟
مرورگرهای مدرن از موتورهای ایزولهشده و ساندباکس استفاده میکنند و خطرات متوجه آنها بسیار کمتر است؛ اما ابزارهای خط فرمان و اسکریپتهای کلاینتی که از دکودرهای بدون سندباکس استفاده میکنند، در صورت دریافت دادههای آلوده آسیبپذیر خواهند بود.
گالری تصاویر تکمیلی: تکین آنالیز | زلزله Broccoli2Shell در نودجیاس و باگ RCE بروتلی















