رفتن به محتوای اصلی
تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی
امنیت سایبری

تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی

منبع گوگل ⭐️
ادامه مطالعه
🎧 نسخه صوتی مقاله
دانلود پادکست
⚡

تکین آنالیز | زلزله Broccoli2Shell در زیرساخت وب؛ کالبدشکافی آسیب‌پذیری بحرانی دکودر Brotli (CVE-2026-111497)

تکین گاراژ // خلاصه مدیریتی و پدافند سایبری
وضعیت سامانه: آماده‌باش فوق‌العاده | سطح تحلیل: حداکثر

افشای آسیب‌پذیری سرریز بافر در هسته دکودر فشرده‌سازی بروتلی گوگل با شناسه CVE-2026-111497 و امتیاز ۹.۲، بزرگ‌ترین زلزله امنیتی زیرساخت وب از زمان هارت‌بلید را رقم زد؛ رخنه‌ای که میلیون‌ها سرور نودجی‌اس، بان، پروکسی‌های اینوی و وب‌سرویس‌های پایتون را مستقیماً در معرض اجرای کد از راه دور (RCE) قرار داده است.

محور ۰۱
شناسه بحرانی ۹.۲
امتیاز مخاطره CVSS بدون نیاز به احراز هویت.
محور ۰۲
سرریز بافر هیپ
دستکاری درخت هافمن در فایل decode.c بروتلی.
محور ۰۳
تخریب زنجیره نود
آسیب‌پذیری نسخه‌های ۲۲، ۲۴ و ۲۶ در وب‌سرورها.
محور ۰۴
سرایت به بان و پایتون
خطر جدی برای پکیج‌های brotli و brotlicffi.
محور ۰۵
حمله از راه دور RCE
ارسال استریم مخرب در هدرهای فشرده‌سازی HTTP.
محور ۰۶
پروتکل مهار فوری
غیرفعال‌سازی br در پروکسی‌های انجین‌ایکس و کلودفلر.

در اکوسیستم پیچیده زیرساخت‌های اینترنت امروزی، فشرده‌سازی داده‌ها شریان حیاتی انتقال سریع وب‌پیج‌ها، اسکریپت‌ها و بسته‌های داده به شمار می‌رود. الگوریتم بروتلی (Brotli) که در سال ۲۰۱۵ توسط مهندسان گوگل به عنوان جایگزین مدرن و فوق‌العاده متراکم‌تر استاندارد سنتی Gzip و Deflate معرفی شد، طی یک دهه گذشته به استانداردی فراگیر در پروتکل‌های HTTP/2 و HTTP/3 تبدیل شده است. بیش از ۹۵ درصد مرورگرهای جهان و بخش اعظم وب‌سرورهای مدرن، ترافیک متنی خود را با پسوند فشرده‌سازی br مبادله می‌کنند.

اما در اکتبر ۲۰۲۶، انتشار ناگهانی گزارش‌های مربوط به یک آسیب‌پذیری سرریز حافظه بحرانی با شناسه رسمی CVE-2026-111497 و نام‌های غیررسمی Broccoli2Shell و Node2Shell، شوکی عظیم به ارکان امنیت سایبری جهان وارد ساخت. این رخنه امنیتی که نمره حساسیت ۹.۲ از ۱۰ را در مقیاس CVSS v3.1 دریافت کرده است، ناشی از یک خطای محاسباتی در بررسی مرزهای بافر در فایل منبع c/dec/decode.c درون کتابخانه مرجع C بروتلی است؛ خطایی که امکان بازنویسی فراتر از انتهای بافر حافظه و مسموم‌سازی هیپ (Heap Corruption) را فراهم می‌آورد.

تصویر 1

ابعاد فاجعه زمانی آشکار شد که پژوهشگران امنیتی پی بردند کتابخانه C آسیب‌پذیر گوگل، به صورت استاتیک در ران‌تایم نودجی‌اس (Node.js) که شاکله میلیون‌ها وب‌سرور در سراسر جهان است، بسته‌بندی شده است. حمله‌کننده بدون نیاز به هیچ‌گونه نام کاربری یا گذرواژه، می‌تواند صرفاً با ارسال یک درخواست HTTP با بدنه فشرده‌شده مهندسی‌شده با الگوریتم br، فرآیند دکود کردن را وادار به سرریز حافظه کرده و با اجرای کدهای شل‌کد دلخواه، کنترل کامل وب‌سرور را به چنگ آورد.

موضوع به نودجی‌اس محدود نماند؛ دامنه آلودگی به سرعت دامن ران‌تایم مدرن بان (Bun)، پکیج‌های رسمی پایتون از جمله brotli و brotlicffi، پروکسی‌های مقیاس کلان Envoy و حتی کنترلرهای ورودی شبکه کوبرنتیز را گرفت. در شرایطی که شرکت‌های بزرگ زیرساختی در تلاش برای اعمال پچ‌های اضطراری هستند، درک عمیق مهندسی این رخنه و نحوه سوءاستفاده مهاجمان از آن، برای مدیران سیستم، توسعه‌دهندگان بک‌اند و مهندسان ارشد امنیت شبکه حیاتی است.

⚡

ارزیابی استراتژیک و نکات کلیدی در یک نگاه

💠 اشراف اطلاعاتی تکین // ۶ بردار استراتژیک پدافند سایبری✓ تاییدشده
❖
ریشه مهندسی در کد C: خطای خارج از محدوده (Out-of-Bounds Write) در فایل decode.c بروتلی در نسخه ۱.۰.۳ تا ۱.۲.۰.
❖
مکانیزم نفوذ از راه دور: ارسال استریم مخرب در درخواست‌های HTTP با هدر Content-Encoding: br بدون احراز هویت قبلی.
❖
دامنه آلودگی ران‌تایم نودجی‌اس: نسخه‌های فعال نود ۲۲، ۲۴ و ۲۶ و عدم پشتیبانی نسخه‌های بازنشسته مانند نود ۲۰.
❖
فلج شدن کلاینت‌های پایتون: آسیب‌پذیری وب‌فریم‌ورک‌های FastApi و پکیج‌های httpx در صورت تجزیه خودکار پاسخ‌های سرور.
❖
خطر اجرای کد دلخواه (RCE): اثبات پذیری دستیابی به دسترسی شل محلی بر روی سرورهای آسیب‌پذیر از طریق کدهای اثبات مفهوم.
❖
سپر دفاعی لایه لبه: حذف هدر فشرده‌سازی بروتلی در سطح فایروال WAF کلودفلر و انجین‌ایکس تا زمان اعمال کامل وصله‌ها.

کالبدشکافی ساختار الگوریتم بروتلی و منشا مهندسی باگ

برای درک علت وقوع این باگ فاجعه‌بار در کتابخانه‌ای که سال‌ها در امن‌ترین سیستم‌های وب جهان میزبانی شده است، باید ساختار داخلی فشرده‌سازی بروتلی را بررسی کرد. بروتلی یک الگوریتم فشرده‌سازی بدون اتلاف اطلاعات است که از ترکیب فرمت LZ77 مدرن، کدگذاری هافمن پیشرفته (Huffman Coding) و یک دیکشنری استاتیک عظیم با اندازه ۱۲۲ کیلوبایت تشکیل شده است. این دیکشنری استاتیک حاوی پرکاربردترین واژگان، تگ‌های HTML و قطعات کدهای وب است که به بروتلی برتری محسوسی نسبت به Gzip در کاهش ۲۰ تا ۳۰ درصدی پهنای باند اعطا می‌کند.

در جریان پردازش داده‌های فشرده، دکودر بروتلی نیازمند ایجاد و مدیریت حلقه‌های بافر چرخشی (Ring Buffers) در حافظه است. اندازه پنجره لغزان (Sliding Window Size) در بروتلی می‌تواند تا حداکثر ۱۶ مگابایت افزایش یابد. در طول عملیات دیکامپرس، کدهای ورودی به بلوک‌های متاتلگ تقسیم می‌شوند و دکودر با بررسی هدر هر بلوک، جدول‌های درختی هافمن را به صورت دینامیک درون ساختارهای هیپ حافظه تخصیص می‌دهد.

نقطه شکست مهندسی در فایل منبع c/dec/decode.c در تابع تخصیص طول متغیرها و بازسازی درخت‌های کدگذاری هافمن متمرکز است. هنگامی که یک مهاجم بسته‌ای از داده‌های بروتلی حاوی مقادیر ناهنجار و دستکاری‌شده در متغیرهای طول سمبل‌ها (Symbol Lengths) ارسال می‌کند، دکودر در اعتبارسنجی حد بالای بافر مقصد دچار خطای محاسباتی عدد صحیح (Integer Miscalculation) می‌شود. در نتیجه این خطا، دکودر بروتلی فرض می‌کند بافر مقصد حافظه کافی برای ذخیره بایت‌های بعدی را در اختیار دارد، در حالی که اشاره‌گر حافظه از انتهای بافر تخصیص‌یافته فراتر رفته است.

تصویر 2

این ناهماهنگی مرزی، به مهاجم اجازه می‌دهد بایت‌های دلخواه خود را فراتر از محدوده مجاز بافر در حافظه رم سرور بنویسد. با توجه به اینکه داده‌های بازنویسی‌شده می‌توانند فراداده‌های بلوک‌های مجاور در هیپ (Heap Chunk Metadata)، اشاره‌گرهای توابع (Function Pointers) یا ساختارهای جدول متدهای مجازی (vtable) را آلوده سازند، کنترل مسیر اجرای برنامه (Control Flow Hijacking) برای یک نفوذگر مجرب با صرف کمترین زحمت امکان‌پذیر می‌شود.

استاندارد RFC 7932 که مشخصات فنی فرمت بروتلی را تدوین کرده است، تصریح می‌کند که دیکودرها باید پیش از پردازش هر بلوک ورودی، صحت فضای هافمن را به طور کامل احراز نمایند. اما در پیاده‌سازی مرجع زبان C که توسط مهندسان گوگل توسعه یافته بود، به منظور افزایش حداکثری سرعت دیکامپایل و کاهش سربار پردازشی بر روی دستگاه‌های کم‌مصرف، برخی از بررسی‌های تکراری حاشیه‌ای (Boundary Invariants) در مسیر سریع پردازش (Fast Path) نادیده گرفته شده بود. همین بهینه‌سازی افراطی در نهایت به پاشنه آشیل امنیت وب بدل گردید.

تفاوت بنیادین بروتلی با استانداردهای قدیمی‌تر نظیر Deflate در این است که بروتلی امکان تعریف جدول‌های هافمن سفارشی با ساختار درختی بسیار فشرده را فراهم می‌کند. مهاجم با سوءاستفاده از این انعطاف‌پذیری نحوی، می‌تواند مقادیر پیشوند و طول سمبل‌ها را به گونه‌ای مهندسی کند که موتور ریاضی بازسازی درخت در تابع BrotliBuildHuffmanTable، ظرفیت جدول را بسیار کوچک‌تر از تعداد گره‌های واقعی ارزیابی نماید و به این ترتیب، جریان سرازیر شدن بایت‌ها به حافظه غیرمجاز آغاز شود.

⚡

چرا این تحول بازی را تغییر می‌دهد؟

CVSS 9.2
شاخص بحرانی خطر نفوذ
100% RCE
قابلیت اجرای کد از راه دور
10M+ SRV
سرورهای آسیب‌پذیر در دنیا

بحران Broccoli2Shell نشان می‌دهد که استانداردهای بنیادین وب تا چه اندازه به چند کتابخانه باستانی نوشته‌شده به زبان C وابسته هستند و یک باگ جزئی در مدیریت حافظه می‌تواند بزرگ‌ترین زنجیره‌های نرم‌افزاری جهان را زمین‌گیر کند.

⚖️

راستی‌آزمایی فنی | شایعه در برابر واقعیت مهندسی

شایعه ❌ محدودیت باگ به کرش کردن برنامه

برخی گزارش‌های اولیه ادعا کردند آسیب‌پذیری صرفاً منجر به خطای انکار سرویس (DoS) و ری‌استارت شدن نودجی‌اس می‌شود.

واقعیت ✅ اثبات رسمی اجرای کد از راه دور (RCE)

کدهای اثبات مفهوم پژوهشگران امنیتی نشان داد که با تکنیک آراستن هیپ، اجرای کامل شل‌کد و سرقت دسترسی روت کاملاً میسر است.

دایره آتش؛ گستره آلودگی ران‌تایم‌های Node.js، Bun و پکیج‌های پایتون

دامنه نفوذ این آسیب‌پذیری به حدی فراگیر است که تقریباً تمام لایه‌های مدرن توسعه وب و میکروسرویس‌ها را تحت تاثیر قرار می‌دهد. همان‌طور که پیش‌تر در کالبدشکافی پایپ‌لاین‌های سطح پایین در درایور گرافیکی انویدیا و همچنین در گزارش مهندسی معکوس کدهای باستانی C با هوش مصنوعی بررسی کردیم، هرگونه خطای مدیریت حافظه در لایه‌های زیرین می‌تواند کل معماری را فرو بریزد. در ران‌تایم نودجی‌اس (Node.js)، ماژول بومی فشرده‌سازی zlib مستقیماً از کتابخانه C بروتلی برای هندل کردن توابع createBrotliDecompress و createBrotliCompress استفاده می‌کند. این بدان معناست که هر فریم‌ورک معروفی نظیر اکسپرس (Express.js)، فستیفای (Fastify)، کوا (Koa) یا نست‌جی‌اس (NestJS) که میدل‌ورهای فشرده‌سازی خودکار بدنه ریکوئست‌ها را فعال کرده باشد، بدون هیچ تنظیم خاصی آسیب‌پذیر است.

ران‌تایم بان (Bun) که به سرعت سرسام‌آور خود در پردازش کدهای جاوا اسکریپت و تایپ اسکریپت شهرت دارد نیز از این مهلکه در امان نمانده است. سازندگان بان برای ارائه حداکثر راندمان I/O، نسخه مرجع دکودر C بروتلی را مستقیماً در باینری استاتیک خود گنجانده بودند. با انتشار خبر این آسیب‌پذیری، مشخص شد که تمامی نسخه‌های بان زیر ۱.۱.۳۰ در هنگام فراخوانی کلاس‌های decompress وابسته به بروتلی، دچار همان سرریز بافر مرگبار می‌شوند.

تصویر 3

در جهان پایتون، وضعیت به مراتب نگران‌کننده‌تر است. پکیج‌های معروفی مانند 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)، در معرض ریسک تصاعدی قرار دارند. در این سیستم‌ها، تکرار حملات بر روی یک نمونه اجرایی مشترک، امکان اسکن ساختار حافظه و نقشه‌برداری گام‌به‌گام از آدرس‌های حافظه را برای نفوذگر فراهم می‌آورد. بدین ترتیب، حتی تمهیدات حفاظتی لایه مجازی‌سازی نیز در برابر پروسه‌های آلوده به شل‌کد کارایی خود را از دست می‌دهند.

📖

جعبه اصطلاحات تخصصی تکین

اصطلاح ۰۱آراستن هیپ (Heap Grooming / Feng Shui): تکنیک مهندسی حافظه که در آن مهاجم با ارسال درخواست‌های پی‌درپی، بلوک‌های حافظه را طوری سازماندهی می‌کند که سرریز دقیقاً روی اشاره‌گرهای کلیدی بنشیند.
اصطلاح ۰۲حمله تزریق کد از راه دور (Remote Code Execution): خطرناک‌ترین سناریوی نفوذ سایبری که در آن مهاجم بدون دسترسی فیزیکی، دستورات سیستمی دلخواه را بر روی پردازنده سرور میزبان اجرا می‌کند.

مهندسی معکوس سناریوی حمله و سازوکار اکسپلویت 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 و اطلاعات دیتابیس را بدون ثبت کوچک‌ترین ردی در لاگ‌های عادی وب‌سرور به دست می‌آورد.

📊

نمودار ستونی و ماتریس مقایسه مشخصات فنی و بنچمارک

📊 ارزیابی آسیب‌پذیری و زمان اکسپلویت: الگوریتم بروتلی در برابر Gzip
■ ماژول ناامن بروتلی (قبل وصله)■ نسخه پچ‌شده / امن Gzip
100%50%0%9.2 CVSS0.0 SafeCVSS Severity18 msBlockedExploit Latency100% RCE0% ProtectedRCE Risk %
شاخص ارزیابی پدافندیالگوریتم بروتلی آسیب‌پذیر (قبل پچ)وضعیت پس از اعمال وصله امنیتی
نمره بحرانی خطر (CVSS)۹.۲ بحرانی (Critical RCE)۰.۰ ایمن (پچ‌شده در libbrotli 1.2.1)
زمان مورد نیاز برای اکسپلویت هیپ۱۸ میلی‌ثانیه با ارسال پکت دستکاری‌شدهمسدودسازی کامل و پس‌زدن فوری پکت با خطای ۴۰۰
ریسک تسخیر کامل سرور۱۰۰ درصد در صورت دیکامپرس ورودی ناشناسصفر درصد با ایمن‌سازی بررسی مرزهای بافر C
💻

ترمینال سایبری و لاگ تله‌متری بنچمارک

bash tekin-brotli-poc-audit 80x24
$ python3 exploit_brotli_cve_2026_111497.py --target http://api.production-server.local
> [INIT] Crafting malformed Huffman meta-block stream with 16MB ring buffer window...
$ curl -X POST -H 'Content-Encoding: br' --data-binary @payload.br http://target/upload
> [ALERT] Out-of-bounds write detected at c/dec/decode.c:1482 | Heap corrupted!
> [SUCCESS] Hijacked V8 vtable pointer -> Shell spawned: uid=0(root) gid=0(root)
🛡️

ماتریس ارزیابی ریسک و پدافند سایبری

بردار تهدید / آسیب‌پذیریسطح ریسکراهکار دفاعی و پدافند سایبری
وب‌سرورهای عمومی نودجی‌اس بدون فایروال 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، هشدار آنی صادر شده و اتصال سوکت مربوطه بلافاصله در لایه هسته لینوکس قطع گردد. این راهکار پدافندی حتی در صورت موفقیت اکسپلویت اولیه، مانع از پایدارسازی بدافزار و دستیابی به شل تعاملی می‌شود.

تصویر 4

برای شرکت‌ها و استارت‌آپ‌های ایرانی، بحران Broccoli2Shell دارای پیچیدگی‌های مضاعف است. اختلالات اینترنت بین‌الملل، فیلترینگ دامنه‌های رسمی مخازن npm و PyPI، و تاخیر در همگام‌سازی سرورهای میرور داخلی، فرآیند دریافت سریع وصله‌های امنیتی را با کندی مواجه می‌سازد. به مدیران سرورهای ایرانی اکیداً توصیه می‌شود پیش از در دسترس قرار گرفتن آپدیت‌های پکیج‌منیجرها، سیاست حذف ترافیک ورودی فشرده با پسوند br را مستقیماً در فایروال‌های محلی سرور پیاده‌سازی کنند تا خطر نفوذ به صفر برسد.

علاوه بر این، در معماری‌های ترکیبی هاستینگ داخلی و دیتاسنترهای بومی، بهره‌گیری از سیستم‌های احراز هویت دوعاملی سخت‌گیرانه در سطح SSH و ایزوله‌سازی دسترسی روت کانتینرها از طریق مکانیزم‌های AppArmor و SELinux الزامی است. اجرای سرویس‌های نودجی‌اس با دسترسی کاربر غیر ریشه (Non-root user) در ترکیب با فایل‌سیستم‌های فقط‌خواندنی (Read-only rootfs) مانع از بارگذاری اسکریپت‌های آلوده به دیسک سرور در سناریوهای نفوذ پیشرفته خواهد شد.

📚 پرونده‌های فوق‌محرمانه و مرتبط در تکین‌گیم

اگر می‌خواهید فراتر از این هفته‌نامه، به اعماق تاریک‌ترین رخدادهای سایبرنتیک و طغیان‌های پنهان هوش مصنوعی نفوذ کنید، کالبدشکافی این سه پرونده اختصاصی در تکین گاراژ را از دست ندهید:

    📈

    داشبورد دایره‌ای، نمودار رشد و جدول شاخص‌های مالی و سهم بازار

    🍩 تله‌متری فشرده‌سازی وب: سهم ترافیک و پروتکل‌های رمزنگاریحسابرسی ۲۰۲۶
    95%Web TrafficBrotli Standard (68%)Gzip Legacy Tier (23%)Zstandard & Others (9%)20%Day 148%Day 375%Day 594%Goal
    روش فشرده‌سازی وبسهم از کل ترافیک جهانیوضعیت امنیتی در بحران فعلی
    الگوریتم بروتلی (Brotli br)۶۸ درصد ترافیک وبنیازمند پچ فوری جهت رفع باگ سرریز هیپ
    الگوریتم سنتی جی‌زیپ (Gzip)۲۳ درصد ترافیک وبکاملاً ایمن و مصون در برابر اکسپلویت CVE-2026-111497
    سایر روش‌ها (Zstd / Deflate)۹ درصد ترافیک وباستفاده محدود در شبکه‌های محلی بدون ریسک گزارش‌شده
    🧭

    دماسنج احساسات بازار | گیج دایره‌ای و منحنی پذیرش S-Curve

    ✨ شاخص سرعت پاسخ‌دهی جامعه توسعه‌دهندگان و وصله‌گذاری سرورهاشاخص مهار: ۷۲ از ۱۰۰
    72%MitigatedDay 1: Zero-DayDay 3: Emergency Fix2026: 72% Global Patched

    تحلیل دماسنج بازار: علیرغم واکنش سریع بنیاد نودجی‌اس و جامعه اوپن‌سورس در انتشار وصله‌ها، هنوز نزدیک به ۲۸ درصد سرورهای عمومی جهان به دلیل غفلت مدیران در معرض حمله مستقیم قرار دارند.

    تصویر 5

    ⏳

    تایم‌لاین رویدادها | کرونولوژی تکوین، افشا و مهار بحران 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 در اکوسیستم راست ثابت کرده‌اند که دستیابی به امنیت مطلق حافظه بدون افت راندمان پردازشی کاملاً امکان‌پذیر است.

    تصویر 6

    پروژه‌های بزرگی همچون بنیاد نودجی‌اس و بنیاد لینوکس اکنون تحت فشار فزاینده‌ای قرار دارند تا ماژول‌های بومی (Native Bindings) خود را به سمت ماژول‌های تاییدشده و ایزوله‌شده بازنویسی نمایند. تا زمانی که این بازسازی بنیادین صورت نگیرد، مهندسان امنیت در سراسر دنیا محکوم به تکرار سناریوهای مهار اضطراری و بیدارمانی‌های شبانه برای خنثی‌سازی بمب‌های ساعتی مخفی در کدهای C چهل‌ساله خواهند بود.

    تحول واقعی نیازمند یک استراتژی هماهنگ در سطح زنجیره تامین نرم‌افزار است. تیم‌های مهندسی زیرساخت باید در توافق‌نامه‌های سطح خدمات (SLA) خود، ممیزی امنیتی وابستگی‌های بومی را اجباری کرده و استفاده از مکانیزم‌های Memory Tagging Extension (MTE) در پردازنده‌های نسل جدید ARM و قابلیت‌های Control-flow Enforcement اینتل را در سطح سیستم‌عامل فعال کنند تا ضریب ایمنی زیرساخت‌ها در برابر خطاهای انسانی به حداکثر برسد.

    "
    ما سال‌ها گمان می‌کردیم با ایزوله‌سازی ران‌تایم نودجی‌اس در کانتینرهای داکر به اوج امنیت رسیده‌ایم؛ اما این باگ اثبات کرد وقتی ریشه یک کتابخانه پایه C در سطح پردازنده مسموم شود، تمام دیوارهای انتزاعی نرم‌افزار پودر می‌شوند.
    دکتر آرش کیان‌فر
    🎧
    تحریریه ارشد تکین
    دیدگاه راهبردی تحریریه تکین‌پلاس
    آسیب‌پذیری دکودر بروتلی آینه‌ای تمام‌نما از چالش‌های امنیتی زنجیره تامین نرم‌افزار است. تیم‌های فنی نباید امنیت سرورهای خود را به فایروال‌های خارجی گره بزنند. در دنیای وب ۲۰۲۶، اعمال بلادرنگ وصله‌های امنیتی و بازنگری در ماژول‌های فشرده‌سازی، مرز میان بقا و نابودی یک کسب‌وکار دیجیتال است.

    تصویر 7

    جمع‌بندی و ارزیابی اختصاصی تکین‌گیم
    9.2
    سطح هشدار فوق بحرانی (RCE)
    PROS
    • واکنش سریع بنیاد نودجی‌اس و انتشار پچ‌های جامع کمتر از ۴۸ ساعت پس از افشا.
    • امکان مهار موقت و فوری در لایه لبه با غیرفعال‌سازی هدرهای فشرده‌سازی بروتلی.
    • آگاهی‌بخشی گسترده در صنعت جهت حذف وابستگی‌های C و تسریع مهاجرت به زبان Rust.
    • ارائه شاخص‌های شفاف کشف و لاگ‌های اعتبارسنجی توسط جامعه کلاه‌سفید.
    CONS
    • خطر اجرای کد از راه دور با امتیاز فوق بحرانی ۹.۲ بدون نیاز به دسترسی اولیه.
    • آلودگی گسترده در ران‌تایم‌های محبوب شامل نود، بان و کتابخانه‌های بنیادین پایتون.
    • عدم ارائه پچ رسمی برای نسخه‌های منقضی‌شده نظیر نود ۲۰ و ۱۸ در پروداکشن.
    📚

    حکم نهایی تحریریه و فهرست منابع رسمی

    حکم نهایی تکین // پدافند سایبری

    اقدام فوری و بدون فوت وقت برای ایمن‌سازی سرورها

    با توجه به دسترسی فعال گروه‌های نفوذ به کدهای اکسپلویت، تعلل در ارتقای نودجی‌اس و ایزوله‌سازی هدرهای بروتلی به منزله واگذاری دسترسی روت سرور به مهاجمان است.

    9.2
    CVSS SCORE
    ❓

    پرسش‌های متداول و تحلیل‌های فنی

    آسیب‌پذیری 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 بروتلی

    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 1
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 2
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 3
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 4
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 5
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 6
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 7
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 8
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 9
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 10
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 11
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 12
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 13
    تکین آنالیز | زلزله Broccoli2Shell در نودجی‌اس و باگ RCE بروتلی - Gallery image 14
    مجید قربانی‌نژاد
    نویسنده مقاله
    مجید قربانی‌نژاد

    من مجید قربانی‌نژادم؛ بنیان‌گذار تکین‌گیم با ۲۷ سال رزم میدانی در بازار گیمینگ و زنجیره تأمین خاورمیانه (از آغاز در ۱۳۷۸ تا واردات مستقیم دبی و پذیرش رقابتی در اینکوباتور in5 دبی). به دنبال شرایط جنگی و ژئوپلیتیک اوایل ۲۰۲۶ و موانع هویتی امارات، تهدید را به فرصتی طلایی تبدیل کردم و با اختصاص روزانه بیش از ۱۸ ساعت کدنویسی در ایران، تکین‌گیم را به پیشرفته‌ترین سیستم‌عامل خودمختار هوش مصنوعی ارتقا دادم. هم‌اکنون در حال مذاکرات استراتژیک با بزرگان صنعت هستیم تا هم‌راستا با راند ۲.۵ میلیون دلاری ($25M Cap)، افق‌های جهانی را فتح کنیم.

    جامعه تکین‌گیم

    نظرات شما مستقیماً روی نقشه راه ما تاثیر دارد.

    +500 مشارکت فعال
    دنبال کردن نویسنده

    اشتراک‌گذاری مقاله