آخرین اخبار
همهٔ اخبار
اکسپلویت‌ها گزارش بحرانیت ۵/۱۰

آسیب‌پذیری‌های بحرانی در ModSecurity: دور زدن محدودیت‌های آپلود فایل و احتمال RCE

آسیب‌پذیری‌های بحرانی در ModSecurity: دور زدن محدودیت‌های آپلود فایل و احتمال RCE

دو نقص امنیتی با شدت بالا در فایروال اپلیکیشن وب (WAF) متن‌باز ModSecurity شناسایی شده است که به مهاجمان اجازه می‌دهد فیلترهای آپلود فایل را دور زده یا با ارسال یک درخواست HTTP دست‌کاری شده، باعث توقف فعالیت Workerهای سرور شوند.

دور زدن فیلترهای آپلود (CVE-2026-104269)

اولین آسیب‌پذیری با شناسه CVE-2026-104269 و امتیاز 8.6 (High) ردیابی می‌شود و نسخه‌های 3.0.0 و بالاتر ModSecurity را تحت تأثیر قرار می‌دهد. این مشکل ناشی از یک عدم تطابق در تحلیل‌گر (Parser Mismatch) است.

تحلیل‌گر multipart در ModSecurity استاندارد RFC 2231 را که پارامتر گسترش‌یافته filename* را در هدر Content-Disposition تعریف می‌کند، پیاده‌سازی نکرده است. در نتیجه، قوانین OWASP CRS (مانند 920120، 922100 و 922110) تنها مقدار ساده filename را بررسی می‌کنند.

بسیاری از بک‌اندهای سازگار با RFC، در صورت وجود هر دو پارامتر، اولویت را به filename* می‌دهند. این موضوع در محیط‌های زیر تأیید شده است:

  • Go (net/http)
  • Python (Flask/Werkzeug و FastAPI/Starlette)
  • Node.js (busboy و @fastify/multipart)
  • Java (Spring)

(لازم به ذکر است که PHP به دلیل خواندن تنها مقدار filename= تحت تأثیر این نقص نیست).

یک مهاجم می‌تواند درخواستی ارسال کند که در آن filename="safe.jpg" و filename*="UTF-8'shell.php" باشد. در این حالت، WAF فایل را به عنوان یک تصویر بی‌خطر شناسایی کرده و اجازه آپلود می‌دهد، اما بک‌اند فایل shell.php را رمزگشایی کرده و روی دیسک می‌نویسد. اگر این فایل در دایرکتوری قابل دسترسی وب قرار گیرد، منجر به اجرای کد از راه دور (RCE) می‌شود.

نقص در پردازش XML (CVE-2026-73857)

دومین آسیب‌پذیری با شناسه CVE-2026-73857 و امتیاز 7.5 (High) مربوط به یک مورد Uninitialized Pointer Dereference در پردازشگر بدنه درخواست‌های XML در نسخه v3 است. این نقص تحت دسته‌بندی‌های CWE-787 و CWE-824 قرار می‌گیرد.

با ارسال یک درخواست خاص، مهاجم می‌تواند یک Worker Process را مجبور کند تا مقداری ثابت را در یک آدرس حافظه تحت کنترل مهاجم بنویسد (Write-What-Where). پیامدهای این حمله می‌تواند از ایجاد اختلال در سرویس (DoS) و افشای حافظه تا احتمال اجرای کد باشد.

این باگ تنها زمانی فعال می‌شود که دایرکتیو SecParseXmlIntoArgs روی حالت “On” یا “OnlyArgs” تنظیم شده باشد (این گزینه به صورت پیش‌فرض خاموش است). نسخه‌های 3.0.15، 3.0.16 و شاخه master تحت تأثیر هستند و نسخه 3.0.17 به عنوان نسخه اصلاح‌شده معرفی شده است.

توصیه‌های امنیتی و مقابله

برای رفع این تهدیدات، اقدامات زیر توصیه می‌شود:

  • به‌روزرسانی libmodsecurity3 به نسخه 3.0.17.
  • غیرفعال نگه داشتن دایرکتیو SecParseXmlIntoArgs مگر در مواردی که تحلیل آرگومان‌های XML ضروری باشد.
  • اعتبارسنجی پسوندهای فایل و محتوای آن‌ها در سمت سرور (Server-side Validation) با استفاده از همان نام فایلی که اپلیکیشن برای ذخیره‌سازی به کار می‌برد.
  • ذخیره فایل‌های آپلود شده در خارج از Web Root و مسدود کردن اجرای اسکریپت‌ها در دایرکتوری‌های آپلود.
  • تست قوانین آپلود با Payloadهای شامل filename* و بررسی لاگ‌ها برای شناسایی درخواست‌هایی که هر دو پارامتر filename و filename* را دارند.