کشف آسیب‌پذیری در Spring Environment

کشف آسیب‌پذیری در Spring Environment

تاریخ ایجاد

Spring Cloud Gateway یک لایه‌ی API Gateway متن‌باز و رایگان مبتنی بر معماری میکروسرویس‌ها است که معمولاً در جلوی سرویس‌ها قرار می‌گیرد و امکاناتی مانند مسیریابی، محدودسازی نرخ درخواست، فیلترها و مانیتورینگ را فراهم می‌کند.

اخیراً یک آسیب‌پذیری تزریق کد مبتنی بر عبارات (Expression Injection) با شناسه‌ی CVE-2025-41243 و شدت ۱۰ (Critical) در نسخه‌های Server WebFlux شناسایی شده است. در شرایط خاص، این نقص به مهاجم امکان می‌دهد از طریق نقطه‌پایان Actuator مربوط به Gateway، مقادیر محیطی Spring را به صورت پویا تغییر داده و منجر به اجرای کد دلخواه شود.

 

جزئیات آسیب‌پذیری

برای بهره‌برداری موفق از این آسیب‌پذیری، شرط‌های زیر باید برقرار باشند:

  1. وجود dependency روی Spring Boot Actuator در پروژه.
  2. فعال بودن صریح نقطه‌پایان Gateway با تنظیم management.endpoints.web.exposure.include=gateway.
  3. دسترسی مهاجم به نقطه‌پایان از طریق شبکه.
  4. عدم وجود مکانیزم احراز هویت و محدودسازی مناسب.

ترکیب این شرایط به مهاجم اجازه می‌دهد با ارسال ورودی‌های دلخواه، مقادیر محیطی Spring را از طریق SpEL تفسیر و تغییر دهد. اگر محیط اجرای برنامه اجازه عملیات خطرناک مانند دسترسی به کلاس‌ها، فراخوانی متدها یا نوشتن در فایل‌ها و متغیرهای حساس را بدهد، این نقص می‌تواند به اجرای کد از راه دور (RCE) منجر شود.

بردار حمله (CVSS 3.1):

  • AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

مراحل حمله:

  • مهاجم به نقطه‌پایان /actuator/gateway دسترسی پیدا می‌کند.
  • با ارسال درخواست‌هایی شامل عبارات یا مقادیر ساختاریافته، ورودی‌هایی در سطح مدیریت Gateway ثبت یا به‌روزرسانی می‌شوند.
  • این ورودی‌ها هنگام پردازش توسط Gateway می‌توانند به‌عنوان SpEL تفسیر شوند یا موجب تغییر مستقیم مقادیر محیطی شوند و در نتیجه مسیردهی ترافیک، پارامترهای فیلترها و مقادیر پیکربندی حساس تحت تأثیر قرار می‌گیرند.

 

نسخه‌های تحت‌تأثیر

  • 3.1.x: تمام نسخه‌های 3.1.0 تا 3.1.10
  • 4.3.x: نسخه‌ی 4.3.0
  • 4.1.x و 4.0.x: تمام نسخه‌های شاخه‌های 4.1 و 4.0 که کمتر از 4.1.11 هستند.
  • 4.2.x: نسخه‌های 4.2.0 تا 4.2.4

توجه: این آسیب‌پذیری مربوط به پیاده‌سازی Server WebFlux است؛ نسخه‌های مبتنی بر WebMVC تحت تأثیر این مشکل قرار ندارند.

 

توصیه‌های امنیتی

  • به‌روزرسانی به نسخه‌های ایمن:

    • شاخه‌ی 3.1.x → نسخه‌ی 3.1.11 و بالاتر

    • شاخه‌ی 4.3.x → نسخه‌ی 4.3.1 و بالاتر

    • شاخه‌های 4.1.x و 4.0.x → نسخه‌ی 4.1.11 و بالاتر

    • شاخه‌ی 4.2.x → نسخه‌ی 4.2.5 و بالاتر

  • غیرفعال یا محدودسازی نقطه‌پایان Gateway: قبل از به‌روزرسانی، از انتشار management.endpoints.web.exposure.include=gateway خودداری کنید یا دسترسی به شبکه‌های مورد اعتماد محدود گردد.

  • محافظت از همه‌ی Actuator endpoints با احراز هویت و کنترل دسترسی مبتنی بر نقش (استفاده از لایه‌ی امنیتی، IP Whitelisting، یا Reverse Proxy با احراز هویت).

  • محدودسازی دسترسی به Actuator از طریق فایروال یا Reverse Proxy به شبکه‌ی مدیریت یا شبکه‌های مورد اعتماد.

  • بررسی رخدادها برای شناسایی رفتارهای مشکوک: تلاش‌های بهره‌برداری معمولاً شامل درخواست‌هایی به مسیرهای Actuator مانند /actuator/gateway با الگوهای SpEL (${...} یا #{...}) و پارامترهای JSON نامتعارف برای تعریف route یا filter است. افزایش ناگهانی تغییرات در متغیرهای محیطی یا ثبت عملیات به‌روزرسانی پیکربندی از دیگر شاخص‌هاست.

 

منابع خبر:

[1]https://spring.io/security/cve-2025-41243

[2]https://nvd.nist.gov/vuln/detail/CVE-2025-41243

[3]https://www.cvedetails.com/cve/CVE-2025-41243

[4]https://euvd.enisa.europa.eu/vulnerability/CVE-2025-41243