js برای تطبیق الگوها استفاده میشود. در نسخههای 10.2.0 و پایینتر، این کتابخانه در مقابل حمله انکار سرویس مبتنی بر Regular Expression (ReDoS) آسیبپذیر است. این آسیبپذیری با شناسه CVE-2026-26996 شناخته شده است و در نسخه 10.2.1 اصلاح شده است.
شرح فنی مشکل
وقتی یک الگوی glob حاوی تعداد زیادی علامت ستاره متوالی (*) باشد و بلافاصله پس از آن یک کاراکترِ حرفی قرار گیرد که در رشتهٔ هدف وجود ندارد، minimatch هر [^/]* را بهطور جداگانه به گروههای regex تبدیل میکند. در زمان شکستِ تطبیق، موتِور regex (مثلاً V8) شروع به عقبنشینی (backtracking) تصاعدی در تمام تقسیمات ممکن میکند. این رفتار منجر به پیچیدگی زمانی O(4^N) میشود که N تعداد علامتهای * است. بهعنوان مثال:
– برای N = 15، یک فراخوانی minimatch() حدوداً 2 ثانیه طول میکشد.
– برای N = 34، فراخوانی عملاً برای همیشه معلق میشود (hang).
بردار حمله و دامنه تأثیر
هر برنامهای که به کاربران اجازه میدهد الگوهای glob را مستقیماً یا غیرمستقیم به minimatch() ارسال کنند، در معرض این نوع ReDoS قرار دارد. مهاجم میتواند با ارسال الگوهای ساختهشده این موتور را مشغول کرده و منابع CPU را مصرف کند تا سرویس را مختل کند.
وابستگی به استانداردهای ضعف
CVE-2026-26996 با CWE-1333 (Inefficient Regular Expression Complexity) مرتبط است. همچنین الگوهای حمله متداول در بانک CAPEC مستند شدهاند که توصیفکنندهٔ روشهای رایج سوءاستفاده است.
وضعیت نسخهها و رفع
– نسخههای آسیبپذیر: minimatch 10.2.0 و پایینتر.
– نسخه اصلاحشده: minimatch 10.2.1 که مشکل را برطرف میکند.
به گزارش از وبسایت cvefeed، اطلاعات دقیق دربارهٔ محصولات و نسخههای تحت تأثیر ممکن است در پایگاه دادهها یا جداول تفصیلی ارائه شده باشد؛ در صورت نیاز به فهرست کاملِ محصولاتی که از این بسته استفاده میکنند، باید وابستگیهای نرمافزاری (dependency tree) پروژهها را بررسی کرد.
شواهد عمومی و پژوهش
به گزارش از وبسایت cvefeed، پژوهشگران مخازن عمومی مانند GitHub را برای یافتن نمونههای اثبات مفهوم (PoC) و اکسپلویتهای عمومی اسکن کردهاند. فهرستهای عمومی و نمونههای منتشرشده میتوانند برای تحلیل بیشتر و آزمایش آسیبپذیری مفید باشند؛ با این حال، انتشار و استفادهٔ غیرمسئولانه از PoCها میتواند مخاطراتی ایجاد کند، بنابراین پیش از اجرای هر PoC در محیط تولید باید احتیاط کرد.
جستجو، شناسایی و مانیتورینگ
– بررسی کد پروژه برای فراخوانیهای minimatch() با آرگومانهایی که از ورودی کاربر میآیند.
– آنالیز dependency tree (مثلاً با npm ls minimatch) برای یافتن نسخههای آسیبپذیر در زنجیرهٔ وابستگی.
– مانیتورینگ CPU و زمان اجرای توابعی که از minimatch استفاده میکنند تا نشانههای ReDoS (افزایش ناگهانی استفاده از CPU یا زمان پردازش طولانی) شناسایی شود.
– استفاده از تستهای بار و Fuzzing کنترلشده برای شبیهسازی الگوهای مخرب در محیطهای ایزوله.
راهکارها و کاهش ریسک
1. بهروزرسانی:
– سریعترین و مؤثرترین راهکار، ارتقا به minimatch 10.2.1 یا نسخههای بعدی است.
2. محدودسازی و اعتبارسنجی ورودی:
– از پذیرفتن الگوهای glob مستقیم از کاربران خودداری کنید.
– طول الگوها، تعداد ‘*’ و پیچیدگی کلی ورودی را محدود کنید.
– الگوهای ورودی را پیشپردازش و از قواعد سفیدفهرست (allowlist) استفاده کنید.
3. تدابیر محافظتی اجرایی:
– اجرای فراخوانیهای حساس در محیطهای ایزوله یا در پردازشهای جداگانه با محدودیت زمانی (timeouts) و محدودیت منابع.
– اعمال rate-limiting و throttling در ورودیهایی که میتوانند منجر به فراخوانی minimatch شوند.
4. جایگزینی یا فیلتر کردن:
– در صورتی که الگوهای پیچیده نیاز نیست، از روشهای سادهتر برای تطبیق رشتهها استفاده کنید یا از کتابخانههایی با محافظت داخلی در برابر ReDoS بهره ببرید.
پیگیری و هماهنگی
– پس از بهروزرسانی یا اعمال مینگرید، اجرای تستهای خودکار (CI) و تستهای امنیتی را برای تأیید از بین رفتن مشکل در محیطهای توسعه و آزمون انجام دهید.
– در صورت مشاهدهٔ حمله یا سوءاستفاده، لاگها را برای تعیین الگوهای مخرب ضبط و نمونهها را در محیط ایزوله بررسی کنید.
منابع و خواندن بیشتر
به گزارش از وبسایت cvefeed، منابع خارجی متعدد شامل گزارشهای فنی، راهنماهای عملی و ابزارهای مرتبط با CVE-2026-26996 وجود دارند که میتوانند برای تحلیل عمیقتر، PoCها و توصیههای عملی مفید باشند. برای کسب جزئیات فنی بیشتر، فهرست تغییرات (changelog) بسته minimatch و پایگاه دادهٔ CVE را نیز بررسی کنید.
نتیجهگیری
CVE-2026-26996 یک آسیبپذیری کلاسیک ReDoS است که ناشی از پیچیدگی ناایمنِ تبدیل الگوهای glob به RegExp در minimatch میباشد. اگر برنامهٔ شما ورودیهایی را دریافت میکند که به طور مستقیم یا غیرمستقیم به minimatch میرسند، توصیهٔ فوری ارتقا به نسخهٔ 10.2.1 و اعمال محدودیتهای ورودی و مکانیزمهای حفاظتی است تا از احتمال سوءاستفاده و اختلال در سرویس جلوگیری شود.