خانه » CVE-2025-48989

CVE-2025-48989

Apache Tomcat: H2 DoS - Made You Reset

توسط Vulnerbyte Alerts
278 بازدید

چکیده

آسیب‌پذیری در پیاده‌سازی HTTP/2 سرور Apache Tomcat به مهاجم اجازه می‌دهد با سوءاستفاده از حمله‌ی Made You Reset (نوعی حمله انکار سرویس) باعث مصرف بیش از حد منابع سرور و ایجاد وضعیت انکار سرویس (DoS) شود. این ضعف ناشی از ناسازگاری بین مکانیزم تنظیم مجدد جریان‌ها (Stream Reset) در پروتکل HTTP/2 و نحوه‌ی مدیریت داخلی درخواست‌ها در Tomcat است؛ به‌طوری که سرور پس از دریافت دستور تنظیم مجدد جریان، همچنان به پردازش درخواست ادامه می‌دهد اما آن را از شمارش جریان‌های فعال حذف می‌کند. نتیجه، تجمع نامحدود درخواست‌های همزمان و در نهایت خطای اتمام حافظه (OutOfMemoryError) یا مصرف بالای پردازنده است.

توضیحات

آسیب‌پذیری CVE-2025-48989 از نوع غیرفعال سازی یا آزادسازی نامناسب (مطابق با CWE‑404) در پروتکل HTTP/2 سرور Apache Tomcat شناسایی شده است. (HTTP/2: نسل دوم پروتکل HTTP که امکان چندجریانی (multiplexing) روی یک اتصال TCP را فراهم می‌کند.)

در پروتکل HTTP/2 امکان تنظیم مجدد یا ریست جریان‌ها (Stream Reset) از هر دو سمت وجود دارد؛ طبق انتظار، پس از ارسال فریم RST_STREAM آن جریان باید بسته و منابع مرتبط آزاد شوند. اما در پیاده‌سازی Tomcat، پس از دریافت RST_STREAM سرور پردازش بخش پشتی (backend processing) را ادامه می‌دهد در حالی که آن جریان از شمارش همزمانیِ تعریف‌شده در SETTINGS_MAX_CONCURRENT_STREAMS (پارامتری که حداکثر تعداد جریان‌های هم‌زمان مجاز برای هر نشست را مشخص می‌کند) حذف می‌شود.

مهاجم می‌تواند با باز کردن تعداد زیادی جریان و سپس وادار کردن سرور به ریست کردن آن‌ها، از طریق فریم‌های مخرب یا ایجاد خطاهای کنترل جریان، شکاف بزرگی بین تعداد جریان‌های فعال از دید پروتکل و درخواست‌های واقعی در حال پردازش ایجاد کند. این ناهماهنگی باعث مصرف نامحدود حافظه یا پردازنده می‌شود و معمولاً با خطای java.lang.OutOfMemoryError: Java heap space یا مصرف کامل حافظه ظاهر می‌گردد.

بهره‌برداری از این ضعف ساده و قابل خودکارسازی است: مهاجم می‌تواند از راه دور، بدون نیاز به احراز هویت و تنها با یک اتصال HTTP/2 با استفاده از اسکریپت‌های ساده یا ابزارهایی مانند h2spec (ابزاری برای تست سازگاری و عملکرد HTTP/2) هزاران جریان باز کند و بلافاصله با ارسال فریم‌های نامعتبر مثل CONTINUATION مخرب یا WINDOW_UPDATE نامتعادل، سرور را مجبور به ارسال RST_STREAM کند. این حمله مشابه Rapid Reset (CVE‑2023‑44487) است، با این تفاوت که در حمله MadeYouReset خودِ سرور قربانیِ ریست می‌شود و بنابراین برخی تدابیر قبلی را دور می زند.

این ضعف در نسخه‌های 9.0.108، 10.1.44 و 11.0.10 پچ شده است؛ اصلاحات شامل مدیریت داخلی بهتر جریان‌ها و آزادسازی به‌موقع منابع پس از ریست می‌باشد. بنابراین به روزرسانی به این نسخه‌ها یا بالاتر توصیه می‌شود.

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 from 11.0.0-M1 through 11.0.9

affected from 10.1.0-M1 through 10.1.43

affected from 9.0.0.M1 through 9.0.107

unknown from 8.5.0 through 8.5.100

unknown from 10.0.0-M1 through 10.0.27

Apache Tomcat

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

Versions Product
Upgrade to Apache Tomcat 11.0.10 or later

Upgrade to Apache Tomcat 10.1.44 or later

Upgrade to Apache Tomcat 9.0.108 or later

Apache Tomcat

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
7,440 site:.ir “Apache Tomcat” Apache Tomcat

نتیجه گیری

این آسیب‌پذیری با شدت بالا نوعی حمله انکار سرویس (DoS) علیه HTTP/2 است که با حجم نسبتاً کم ترافیک می‌تواند سرورهای Apache Tomcat را به‌طور جدی مختل کند. با توجه به انتشار پچ‌های رسمی، اجرای فوری اقدامات زیر الزامی است:

  • به‌روزرسانی فوری: تمام سرورهای Tomcat را به نسخه‌های 11.0.10، 10.1.44 و 9.0.108 به روزرسانی کنید.
  • غیرفعال‌سازی موقت HTTP/2: در صورت عدم امکان به روزرسانی فوری، پروتکل HTTP/2 را با تنظیم protocol=”HTTP/1.1″ غیرفعال کنید.
  • محدودسازی نرخ فریم‌های RST_STREAM: در لایه پروکسی معکوس (مانند Nginx یا Apache HTTPD) نرخ RST_STREAM را با ماژول‌هایی مانند ngx_http_limit_req_module یا تنظیمات معادل در mod_reqtimeout. محدود کنید (rate‑limit).
  • استفاده از فایروال اپلیکیشن وب پیشرفته: فایروال‌های نسل جدید مانند Cloudflare، Akamai یا ModSecurity با قوانین اختصاصی MadeYouReset را فعال کنید.
  • مانیتورینگ فعال: با استفاده از ابزارهایی مانند Prometheus و Grafana، تعداد ریست‌های جریان‌های HTTP/2 (http2_stream_resets) و میزان استفاده از حافظه (heap memory) را بررسی کنید و برای نمونه، آستانه هشدار روی 1000 ریست در ثانیه تعریف نمایید.
  • ایزوله‌سازی کانتینرها: سرورهای Tomcat را داخل Kubernetes اجرا کنید و با تعیین محدودیت‌های پردازنده و حافظه (CPU/Memory requests و limits) و استفاده از NetworkPolicy، امنیت و جداسازی شبکه‌ای کانتینرها را تضمین کنید.
  • به‌روزرسانی فریم‌ورک‌ها: کتابخانه‌های Jetty، Undertow و Netty نیز نسخه‌های پچ‌شده منتشر کرده‌اند؛ وابستگی‌ها را با mvn dependency:tree بررسی و به روزرسانی کنید.

اجرای این اقدامات، به‌ویژه به روزرسانی فوری به نسخه‌های پچ‌شده و فعال‌سازی فایروال اپلیکیشن وب، ریسک بهره‌برداری از حمله MadeYouReset را به حداقل رسانده و پایداری سرویس‌های وب مبتنی بر Apache Tomcat را تضمین می‌کند.

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

Initial Access (TA0001)
مهاجم از راه دور و بدون احراز هویت با باز کردن یک یا چند اتصال HTTP/2 به سرور هدف وارد می‌شود؛ همان اتصالِ اولیه (handshake) کافی است تا مهاجم کانال لازم برای ارسال فریم‌های مخرب نامتعادل داشته باشد. این مرحله صرفاً شبکه‌ای است و نیاز به دسترسی قبلی یا اعتبارنامه ندارد — سرویس در معرض اینترنت یا شبکه داخلی که HTTP/2 فعال دارد، هدف قرار می‌گیرد.

Defense Evasion (TA0005)
حمله با تکیه بر ناسازگاری پروتکل — اینکه سرور پس از دریافت RST_STREAM پردازش backend را متوقف نمی‌کند اما آن را از شمارش همزمانی حذف می‌کند — بسیاری از قاعده‌گذاری‌های ساده نرخ/اتصال را دور می‌زند؛ از آن‌جا که مهاجم از یک اتصال معتبر HTTP/2 استفاده می‌کند و خطاها به‌صورت «ریست‌شده» به‌نظر می‌رسند، مکانیزم‌های محافظتی سطح شبکه یا WAF ممکن است ترافیک را نادیده بگیرند تا زمانی که آستانه منابع سرریز شود.

Impact (TA0040)
اثر عملیاتی اصلی کاهش یا قطع کامل دسترس‌پذیری سرویس (DoS) است: تجمع درخواست‌های پردازشی “نامرئی” برای کنترل همزمانی می‌تواند باعث OutOfMemoryError، مصرف کامل CPU یا کرش فرآیند Tomcat شود؛ در نتیجه خدمات وب و APIهای میزبانی‌شده روی سرور از دسترس خارج می‌شوند و وابستگی‌های زنجیره‌ای backendها، Backendهای جاوا، کانتینرها نیز دچار اختلال می‌گردند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-48989
  2. https://www.cvedetails.com/cve/CVE-2025-48989/
  3. https://lists.apache.org/thread/9ydfg0xr0tchmglcprhxgwhj0hfwxlyf
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-48989
  5. https://vuldb.com/?id.319909
  6. https://www.kb.cert.org/vuls/id/767506
  7. http://www.openwall.com/lists/oss-security/2025/08/13/2
  8. https://nvd.nist.gov/vuln/detail/CVE-2025-48989
  9. https://cwe.mitre.org/data/definitions/404.html

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

پیام بگذارید