- شناسه CVE-2025-49574 :CVE
- CWE-668 :CWE
- yes :Advisory
- منتشر شده: ژوئن 23, 2025
- به روز شده: دسامبر 22, 2025
- امتیاز: 6.4
- نوع حمله: Information Disclosure
- اثر گذاری: Information Disclosure
- حوزه: سیستمهای مجازیسازی و مدیریت ابری
- برند: quarkusio
- محصول: quarkus
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری افشای بالقوه داده (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 پایدار باقی میماند.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-49574
- https://www.cvedetails.com/cve/CVE-2025-49574/
- https://github.com/quarkusio/quarkus/security/advisories/GHSA-9623-mj7j-p9v4
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-49574
- https://vuldb.com/?id.313679
- https://github.com/quarkusio/quarkus/issues/48227
- https://github.com/quarkusio/quarkus/pull/48486
- https://github.com/quarkusio/quarkus/commit/2b58f59f4bf0bae7d35b1abb585b65f2a66787d1
- https://github.com/quarkusio/quarkus/commit/31e8a3bfcf4e223788615d5ce25eb929ca251275
- https://github.com/quarkusio/quarkus/commit/d1ee57e7b826872b6355cfec0ae13465840e232c
- https://github.com/quarkusio/quarkus/releases/tag/3.24.1
- https://nvd.nist.gov/vuln/detail/CVE-2025-49574
- https://cwe.mitre.org/data/definitions/668.html