خانه » CVE-2025-49574

CVE-2025-49574

Quarkus potential data leak when duplicating a duplicated context

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

چکیده

آسیب‌پذیری افشای بالقوه داده (Potential Data Leak) در Quarkus ناشی از تغییر عملکرد کتابخانه Vert.x هنگام کپی مجدد زمینه تکرارشده (Duplicating a Duplicated Context) است. در نسخه‌های آسیب‌پذیر، محتوای زمینه والد شامل داده‌های دامنه درخواست، اطلاعات امنیتی و متادیتاها به زمینه جدید منتقل شده و می‌تواند باعث افشای داده بین تراکنش‌های مستقل شود.

توضیحات

آسیب‌پذیری CVE-2025-49574 در فریم‌ورک Quarkus ناشی از افشای منابع به حوزه نادرست مطابق با CWE-668 است. Quarkus به‌طور گسترده از مکانیزم duplicated context در کتابخانه Vert.x برای انتقال زمینه اجرایی بین عملیات‌های همزمان (synchronous) و ناهمزمان (asynchronous) استفاده می‌کند. Duplicated context یک ساختار ایزوله است که هر تراکنش (transaction) یا پردازش (processing) معمولاً در آن اجرا می‌شود تا داده‌ها و وضعیت هر تراکنش از دیگری جدا باقی بماند.

در نسخه‌های قدیمی‌تر Vert.x، هنگام کپی دوباره یک duplicated context، یک زمینه جدید و خالی ساخته می‌شد که امکان اجرای تراکنش مستقل را فراهم می‌کرد. اما نسخه 4.5.12 به بعد، محتوای duplicated context والد به زمینه جدید کپی می‌شود. این تغییر معنایی (semantic change) عملکرد را از دید Vert.x شفاف‌تر می‌کند، اما برای Quarkus که به شدت به duplicated context وابسته است، می‌تواند باعث افشای داده بین تراکنش‌های مختلف شود.

داده‌های ذخیره‌شده در duplicated context شامل محدوده درخواست، جزئیات امنیتی مانند نقش‌ها و توکن‌ها، متادیتا و داده‌های لوکال زمینه مانند VertxMDC برای لاگینگ هستند. در Quarkus، مواردی که از duplicated context استفاده می‌کنند شامل Quarkus REST Client هنگام استفاده از OpenTelemetry (OTel)، Quarkus Messaging Connectors مانند Kafka، AMQP و RabbitMQ و همچنین Quarkus SmallRye Health هستند. در اکثر موارد، تراکنش‌های اصلی حفظ می‌شوند و افشای داده رخ نمی‌دهد، اما در سناریوهایی که تراکنش‌های مستقل وجود داشته باشند و duplicated context دوباره کپی شود، محتوای والد می‌تواند به زمینه جدید منتقل شده و داده‌ها بین تراکنش‌ها افشا شود.

در چنین شرایطی، مهاجم می‌تواند به داده‌های حساس تراکنش دیگر مانند اطلاعات کاربری، توکن‌های احراز هویت یا داده‌های تجاری دسترسی پیدا کند. بهره‌برداری از این آسیب‌پذیری نیازمند دسترسی لوکال است و از طریق شبکه مجاور (Adjacent Network) قابل انجام می‌باشد.

این آسیب‌پذیری با انتشار نسخه‌های 3.15.7، 3.20.3 و 3.24.1 به‌طور کامل پچ شده است. پچ اعمال‌شده تضمین می‌کند که هنگام کپی دوباره duplicated context، داده‌های زمینه والد به تراکنش‌های مستقل منتقل نشوند و افشای اطلاعات رخ ندهد.

CVSS

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

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

Versions Product
affected at >= 3.21.0.CR1, < 3.24.1

affected at >= 3.16.0.CR1, < 3.20.2

affected at < 3.15.6

quarkus

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

Versions Product
3.15.7, 3.20.3, 3.24.1 quarkus

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
2,930 site:.ir “quarkus” quarkus

نتیجه گیری

این آسیب‌پذیری با شدت متوسط در Quarkus، امکان افشای داده‌های حساس بین تراکنش‌ها را به دلیل تغییر عملکرد کتابخانه Vert.x هنگام کپی دوباره زمینه تکرارشده (Duplicating a Duplicated Context) فراهم می‌کند. با توجه به انتشار پچ امنیتی رسمی، اجرای اقدامات زیر برای جلوگیری از بهره‌برداری و کاهش سطح ریسک ضروری است:

  • به‌روزرسانی فوری: تمام پروژه‌های Quarkus را به نسخه‌های امن 24.1، 3.20.2 یا 3.15.6 (بسته به شاخه فعلی) به روزرسانی کنید. این اقدام اصلی‌ترین، ساده‌ترین و مؤثرترین راهکار برای رفع کامل آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • اعمال راهکار موقت: در کدهایی که زمینه تکرارشده (duplicated context) را دوباره کپی می‌کنند، از روش ((ContextInternal) getRootContext(ctx)).duplicate() استفاده کنید تا از کپی ناخواسته داده‌ها جلوگیری شود. این راهکار تنها تا زمان به‌روزرسانی Vert.x مؤثر است و جایگزین پچ رسمی نمی‌شود.
  • محدودسازی انتشار زمینه: از انتشار زمینه اجرایی فقط در موارد ضروری استفاده کنید و در سناریوهای حساس، به جای duplicated context از ContextLocal سفارشی (Custom ContextLocal) بهره ببرید تا تراکنش‌ها ایزوله باقی بمانند.
  • نظارت بر لاگ و متریک: لاگ‌های VertxMDC و telemetry مانند OpenTelemetry را برای نشانه‌های افشای داده، مانند trace ID یا context اشتباه، مانیتور کنید و هشدار تنظیم نمایید.
  • تست امنیتی: اپلیکیشن را با تست‌های یکپارچگی (Integration Tests) و بارگذاری (Load Tests) بررسی کنید تا افشای احتمالی context شناسایی شود. از ابزارهایی مانند OpenTelemetry Tracing برای بررسی نحوه انتشار زمینه استفاده نمایید.
  • جداسازی تراکنش‌ها: در (Messaging Connectors) و بخش‌های بررسی سلامت سیستم (Health Checks)، هر تراکنش باید از یک زمینه جدید استفاده کند و نباید duplicated context دوباره کپی شود.
  • آموزش تیم توسعه: توسعه‌دهندگان را نسبت به ریسک تغییرهای معنایی در وابستگی‌ها مانند x آگاه کنید و بر اجرای تست‌های بازگشتی (Regression Tests) پس از ارتقای نسخه‌های وابستگی تأکید نمایید.

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

امکان استفاده در تاکتیک های Mitre Attack (در زمان اجرای حمله)

(TA0002) Execution

مهاجم با ارسال درخواست‌های همزمان به کامپوننت‌های آسیب‌پذیر Quarkus مانند REST Client با OpenTelemetry یا Messaging Connectors، از افشای داده‌های زمینه duplicated context سوءاستفاده کرده و اسکریپت‌های مخرب را از طریق داده‌های لوکال مانند VertxMDC اجرا می‌نماید، مشروط بر اینکه تراکنش‌های مستقل با duplicate کردن زمینه تکراری همزمان اجرا شوند و مهاجم دسترسی Adjacent Network داشته باشد.

(TA0006) Credential Access

پس از exploit کردن افشای زمینه والد در duplicate duplicated context، مهاجم توکن‌های احراز هویت، نقش‌های کاربری و اطلاعات امنیتی ذخیره‌شده در دامنه درخواست را از تراکنش‌های مستقل استخراج می‌کند، که این امر نیازمند سناریوهایی است که Quarkus SmallRye Health یا Kafka/AMQP connector ها زمینه را دوباره duplicate کنند و مهاجم به خروجی لاگ‌ها یا پاسخ‌ها دسترسی داشته باشد.

(TA0007) Discovery

مهاجم با بهره‌برداری از data leak بین تراکنش‌ها در Messaging Connectors مانند RabbitMQ، متادیتاهای داخلی، ساختار داده‌های تراکنش‌های دیگر و جزئیات امنیتی را شناسایی می‌کند، مشروط بر اجرای همزمان تراکنش‌های مستقل در محیط Quarkus با Vert.x 4.5.12+ و دسترسی مهاجم از Adjacent Network برای مشاهده داده‌های افشاشده.

(TA0005) Defense Evasion

مهاجم با بهره‌برداری از افشای داده‌های امنیتی زمینه والد، توکن‌ها و نقش‌ها را برای impersonation استفاده کرده و مکانیزم‌های تشخیص را دور می‌زند، مشروط بر سناریوهای نادر duplicate duplicated context در Health Checks و عدم جداسازی مناسب تراکنش‌ها در نسخه‌های آسیب‌پذیر.

(TA0040) Impact

پیامد شامل افشای گسترده اطلاعات حساس شامل توکن‌های احراز هویت، نقش‌های کاربری، متادیتای تراکنش و داده‌های تجاری بین تراکنش‌های مستقل می‌شود؛ مهاجم می‌تواند دسترسی‌های غیرمجاز کسب کند، لاگ‌ها را آلوده سازد و عملیات را مختل نماید، که این وضعیت تا اعمال پچ نسخه‌های 3.15.7، 3.20.3 و 3.24.1 پایدار باقی می‌ماند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-49574
  2. https://www.cvedetails.com/cve/CVE-2025-49574/
  3. https://github.com/quarkusio/quarkus/security/advisories/GHSA-9623-mj7j-p9v4
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-49574
  5. https://vuldb.com/?id.313679
  6. https://github.com/quarkusio/quarkus/issues/48227
  7. https://github.com/quarkusio/quarkus/pull/48486
  8. https://github.com/quarkusio/quarkus/commit/2b58f59f4bf0bae7d35b1abb585b65f2a66787d1
  9. https://github.com/quarkusio/quarkus/commit/31e8a3bfcf4e223788615d5ce25eb929ca251275
  10. https://github.com/quarkusio/quarkus/commit/d1ee57e7b826872b6355cfec0ae13465840e232c
  11. https://github.com/quarkusio/quarkus/releases/tag/3.24.1
  12. https://nvd.nist.gov/vuln/detail/CVE-2025-49574
  13. https://cwe.mitre.org/data/definitions/668.html

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

پیام بگذارید