خانه » CVE-2025-61919

CVE-2025-61919

Rack Is Vulnerable To A Memory-Exhaustion DoS Through Unbounded URL-Encoded Body Parsing

توسط Vulnerbyte Alerts
7 بازدید
هشدار سایبری CVE-2025-61919

چکیده

آسیب‌پذیری مصرف نامحدود منابع در رابط وب‌سرور مدولار Rack نسخه‌های پیش از 2.2.20، 3.1.18 و 3.2.3 شناسایی شده است. این ضعف در متد Rack::Request#POST برای Content-Type: application/x-www-form-urlencoded رخ می‌دهد و زمانی که کل بدنه درخواست بدون محدودیت در حافظه بارگذاری می‌شود، می‌تواند باعث مصرف کامل حافظه و انکار سرویس (DoS) شود. بهره‌برداری از این آسیب‌پذیری می‌تواند عملکرد سرویس‌های وب و برنامه‌های وابسته به Rack را مختل کند.

توضیحات

آسیب‌پذیری CVE-2025-61919 در Rack (رابط وب‌سرور مدولار Ruby برای ایجاد سرورهای وب) نسخه های پیش از 2.2.20، 3.1.18 و 3.2.3، ناشی از مصرف نامحدود منابع است که مطابق با CWE-400 طبقه‌بندی می‌شود. این ضعف در متد Rack::Request#POST برای پردازش فرم‌های URL-encoded (application/x-www-form-urlencoded، فرمت استاندارد برای ارسال داده‌های فرم در HTTP) رخ می‌دهد؛ این متد با فراخوانی rack.input.read(nil) کل بدنه درخواست را بدون اعمال محدودیت طول یا سقف (cap) داخل یک رشته Ruby بارگذاری می‌کند و این کار قبل از تجزیه پارامترها (query parameter parsing) یا اعمال params_limit انجام می‌شود.

این آسیب‌پذیری از راه دور با پیچیدگی پایین و بدون نیاز به سطح دسترسی یا تعامل کاربر قابل بهره‌برداری است.  مهاجم می‌تواند با ارسال بدنه درخواست بزرگ (large request body)، حافظه فرآیند را به طور نامحدود اشغال کند، که منجر به کندی سیستم، مصرف کامل حافظه (Out of Memory یا OOM) یا خاتمه فرآیند توسط سیستم‌عامل می‌شود. اثر حمله با اندازه بدنه و تعداد درخواست‌های همزمان مقیاس‌پذیر است.

Rack این آسیب‌پذیری را در نسخه‌های 2.2.20، 3.1.18 و 3.2.3 با محدود کردن خواندن بدنه درخواست از طریق query_parser.bytesize_limit پچ کرده است. همچنین توصیه می‌شود محدودیت اندازه بدنه را در سطح پروکسی یا وب‌سرور (مثلاً client_max_body_size در Nginx یا LimitRequestBody در Apache) تنظیم کنید تا از مصرف بیش از حد حافظه جلوگیری شود.

CVSS

Score Severity Version Vector String
7.5 HIGH 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

 لیست محصولات آسیب پذیر

Versions Product
affected at < 2.2.20

affected at >= 3.0, < 3.1.18

affected at >= 3.2, < 3.2.3

rack

لیست محصولات بروز شده

Versions Product
2.2.20

3.1.18

3.2.3

rack

 استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که Rack Ruby را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
6 site:.ir “Rack Ruby” Rack Ruby

 نتیجه گیری

این آسیب‌پذیری با شدت بالا در Rack، امکان مصرف کامل حافظه (memory exhaustion) و انکار سرویس (DoS) را فراهم می‌کند. با توجه به انتشار پچ رسمی، اجرای فوری اقدامات زیر برای جلوگیری از بهره‌برداری و افزایش امنیت ضروری است:

  • به‌روزرسانی فوری: Rack را به نسخه‌های 2.2.20، 3.1.18 یا 3.2.3 به روزرسانی کنید.
  • اعمال محدودیت اندازه بدنه: در لایه وب‌سرور یا پروکسی، حداکثر اندازه بدنه درخواست را محدود کنید؛ مثلاً در Nginx: client_max_body_size 1m؛ در Apache: LimitRequestBody 1048576.
  • نظارت و ثبت لاگ (logging): لاگ‌های درخواست‌ها را برای بدنه‌های بزرگ  نظارت کنید و از فایرول اپلیکیشن وب (WAF) برای فیلتر کردن درخواست‌های مشکوک با Content-Type: application/x-www-form-urlencoded استفاده نمایید.
  • کنترل دسترسی: دسترسی به سرورهای Ruby را با فایروال محدود کرده و از rate limiting برای جلوگیری از حملات بهره ببرید.
  • ایزوله‌سازی محیط: برنامه‌های Rack را در کانتینرها اجرا کنید تا تأثیر مصرف بیش از حد حافظه محدود شود.
  • تست و اسکن امنیتی: وابستگی‌ها را با ابزارهایی مانند Bundler audit یا Snyk اسکن کنید و تست نفوذ (penetration testing) برای درخواست‌های فرم انجام دهید.
  • آموزش توسعه‌دهندگان: توسعه‌دهندگان را در مورد ریسک DoS از طریق مصرف منابع و اهمیت اعمال محدودیت‌ها در پردازش درخواست‌های HTTP آموزش دهید.

اجرای این اقدامات، ریسک ناشی از این آسیب پذیری را به حداقل رسانده و سطح امنیت برنامه‌های مبتنی بر Rack را به‌طور قابل توجهی بهبود می‌بخشد.

امکان استفاده در تاکتیک های Mitre Attack

Initial Access (TA0001)
مهاجم می‌تواند از طریق شبکه و بدون احراز هویت یک یا چند درخواست HTTP با Content-Type: application/x-www-form-urlencoded  و بدنه بزرگ ارسال کند.

Defense Evasion (TA0005)
حمله از طریق درخواست‌های فرم استاندارد (application/x-www-form-urlencoded) انجام می‌شود و به‌خاطر «ظاهر قانونی» ترافیک می‌تواند از قوانین ساده WAF یا محدودیت‌های پارامتری عبور کند

Impact (TA0040)
این آسیب‌پذیری مستقیماً منجر به Denial of Service (DoS)  از طریق Memory Exhaustion می‌شود: بارِ زیاد بدنه می‌تواند حافظه پروسه را کامل کند، باعث OOM یا خاتمه فرایند توسط سیستم عامل، یا کندی شدید عملکرد سرویس شود.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-61919
  2. https://www.cvedetails.com/cve/CVE-2025-61919/
  3. https://github.com/rack/rack/security/advisories/GHSA-6xw4-3v39-52mm
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-61919
  5. https://vuldb.com/?id.327947
  6. https://github.com/rack/rack/commit/4e2c903991a790ee211a3021808ff4fd6fe82881
  7. https://github.com/rack/rack/commit/cbd541e8a3d0c5830a3c9a30d3718ce2e124f9db
  8. https://github.com/rack/rack/commit/e179614c4a653283286f5f046428cbb85f21146f
  9. https://nvd.nist.gov/vuln/detail/CVE-2025-61919

همچنین ممکن است دوست داشته باشید

پیام بگذارید

send
سوالی دارید؟
می تونید از من بپرسید 👋 ×