خانه » CVE-2025-58360

CVE-2025-58360

GeoServer is vulnerable to an Unauthenticated XML External Entities (XXE) attack via WMS GetMap feature

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

چکیده

آسیب‌پذیری XML External Entities (XXE) بدون نیاز به احراز هویت در GeoServer باعث می‌شود مهاجم از طریق پارامتر SLD_BODY در عملیات GetMap سرویس WMS بتواند از راه دور فایل‌های دلخواه سرور را بخواند، درخواست‌های SSRF به سامانه‌های داخلی ارسال کند و در برخی شرایط باعث اختلال یا انکار سرویس (DoS) شود. این ضعف به مهاجم اجازه می‌دهد به اطلاعات حساس سیستم دسترسی پیدا کرده و زیرساخت شبکه را هدف قرار دهد.

توضیحات

آسیب‌پذیری CVE-2025-58360 در GeoServer یک ضعف از نوع XML External Entities (XXE) مطابق با CWE‑611 است که هنگام پردازش پارامتر SLD_BODY در درخواست‌های POST به اندپوینت ‎/geoserver/wms‎ در عملیات GetMap سرویس WMS (Web Map Service، پروتکل استاندارد OGC برای ارائه نقشه از طریق HTTP) رخ می‌دهد.

GeoServer یک سرور متن‌باز است که به کاربران امکان اشتراک‌گذاری و ویرایش داده‌های جغرافیایی (Geospatial Data) را می‌دهد. پارامتر SLD_BODY برای ارسال استایل‌های سفارشی مبتنی بر XML استفاده می‌شود اما در نسخه‌های آسیب‌پذیر، تجزیه‌گر XML هیچ محدودیتی برای پردازش DTD (تعریف ساختار و قواعد سند XML) و موجودیت‌های خارجی (External Entities) اعمال نمی‌کند. به‌دلیل دسترس‌پذیری کامل این مسیر بدون نیاز به احراز هویت، مهاجم می‌تواند با تزریق DTD مخرب و ارجاع به فایل‌های لوکال یا منابع داخلی، محتوای آن‌ها را در خروجی عملیات GetMap (مانند تصاویر PNG/SVG) دریافت کند. این مسئله امکان افشای فایل‌هایی نظیر ‎/etc/passwd‎، فایل‌های پیکربندی GeoServer، کلیدهای خصوصی و دیگر داده‌های حساس را فراهم می‌کند. همچنین، مهاجم می‌تواند از طریق تعریف موجودیت‌هایی که به منابع داخلی اشاره می‌کنند، حملات درخواست جعلی سمت سرور (SSRF) انجام دهد و به سرویس‌های داخلی یا متادیتای محیط‌های ابری (AWS/GCP/Azure) دسترسی پیدا کند.

این آسیب‌پذیری علاوه بر افشای داده، می‌تواند برای اجرای حملات انکار سرویس (DoS) نیز استفاده شود. با ارسال ساختارهای DTD پیچیده مانند حملات مبتنی‌بر گسترش بیش‌ازحد موجودیت‌ها (Entity Expansion)، تجزیه‌گر XML مجبور به مصرف شدید حافظه و CPU می‌شود و می‌تواند موجب اختلال یا توقف سرویس GeoServer گردد. بهره‌برداری از این ضعف به‌سادگی قابل خودکارسازی است و می‌توان آن را با ابزارهایی مانند curl یا اسکریپت‌های ساده، از راه دور و بدون تعامل کاربر اجرا کرد.

کد اثبات مفهومی (PoC) این آسیب‌پذیری نیز به‌صورت عمومی منتشر شده است. این PoC نشان می‌دهد که چگونه با تزریق موجودیت خارجی در SLD_BODY می‌توان فایل‌های دلخواه سرور را استخراج کرد، حملات SSRF انجام دادیا شرایط DoS ایجاد نمود. انتشار عمومی PoC ریسک بهره‌برداری فوری و گسترده را افزایش می‌دهد.

این ضعف در نسخه‌های 2.25.6، 2.26.3 و 2.27.0 پچ شده است. در نسخه‌های پچ‌شده، تجزیه‌گر XML با تنظیمات امن پیکربندی شده و پردازش DTD و موجودیت‌های خارجی غیرفعال شده است.

CVSS

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

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

Versions Product
affected at >= 2.26.0, < 2.26.2

affected at < 2.25.6

geoserver

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

Versions Product
Update to GeoServer 2.25.6, GeoServer 2.26.3, or GeoServer 2.27.0 geoserver

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
1,860 site:.ir “geoserver” geoserver

نتیجه گیری

این آسیب‌پذیری یک حمله XXE بدون احراز هویت با شدت بالا در GeoServer است که امکان افشای فایل‌های حساس سرور، اجرای حملات SSRF داخلی و ایجاد انکار سرویس (DoS) را فراهم می‌کند. با توجه به انتشار پچ رسمی و وجود PoC عمومی، اجرای فوری اقدامات زیر ضروری است:

  • به‌روزرسانی فوری: تمام نمونه‌های GeoServer را به یکی از نسخه‌های امن 2.25.6، 2.26.3 یا 2.27.0 به روزرسانی کنید. این اقدام، مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • غیرفعال‌سازی SLD_BODY: اگر از استایل‌ سفارشی XML استفاده نمی‌کنید، پارامتر SLD_BODY را در پیکربندی WMS غیرفعال کنید (فایل ‎xml‎). این کار سطح حمله را به‌طور محسوسی کاهش می‌دهد.
  • محدودسازی WMS: دسترسی به سرویس WMS را به IPهای مورد اعتماد محدود کنید (Whitelist) یا آن را از طریق VPN محافظت نمایید. در صورت امکان، GeoServer را پشت یک پروکسی معکوس (Reverse Proxy) قرار دهید تا تنها درخواست‌های معتبر به سرویس برسند.
  • استفاده از فایروال اپلیکیشن وب (WAF): با استفاده از ModSecurity یا Cloudflare WAF، الگوهای خطرناک مانند ‎<!ENTITY‎، ‎<!DOCTYPE‎ یا مسیرهای ‎file://‎ را فیلتر کنید. این اقدام می‌تواند بسیاری از تلاش‌های XXE را قبل از رسیدن به GeoServer مسدود کند.
  • اجرای اصل حداقل دسترسی: GeoServer را با یک حساب کاربری با سطح پایین اجرا کنید و دسترسی آن به فایل‌سیستم را فقط در حد ضروری (Read‑Only در صورت امکان) محدود کنید. بهره‌گیری از کانتینرهای Docker یا Podman با قابلیت‌های کاهش‌یافته (Drop Capabilities) توصیه می‌شود.
  • نظارت و تشخیص: لاگ‌های GeoServer و فایروال را برای درخواست‌های POST به مسیر ‎/wms‎ با Content‑Type‌ XML یا وجود ساختارهایی مانند ‎<!DOCTYPE‎ بررسی کنید و هشدارهای خودکار برای شناسایی عملکرد مشکوک فعال کنید.
  • اسکن و تست: نمونه‌های GeoServer را با ابزارهایی مانند Nuclei یا XXEinjector اسکن کنید تا از عدم وجود XXE اطمینان حاصل شود.

با اجرای سریع به‌روزرسانی‌های امنیتی و افزودن لایه‌های محافظتی، می‌توان ریسک افشای اطلاعات حساس و سوءاستفاده از سرویس‌های داخلی را به‌طور چشمگیری کاهش داد و امنیت محیط GeoServer را تضمین کرد.

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

Initial Access (TA0001)

در سناریوی XXE روی GeoServer، مهاجم از مسیر WMS و پارامتر SLD_BODY که بدون احراز هویت در دسترس است به‌عنوان نقطه ورودی استفاده می‌کند. این دسترسی عمومی عملاً یک سطح ورودی مستقیم برای ارسال XML مخرب فراهم می‌کند و امکان آغاز حمله بدون نیاز به حساب کاربری یا توکن را ایجاد می‌نماید.

Credential Access (TA0006)

XXE می‌تواند فایل‌های داخلی مانند private keys، توکن‌ها یا فایل‌های کانفیگ حاوی اطلاعات احراز هویت را افشا کند. مهاجم با تعریف موجودیت‌های خارجی می‌تواند این اطلاعات را در خروجی GetMap استخراج کرده و برای دسترسی‌های بعدی از آن استفاده کند.

Discovery (TA0007)

از طریق SSRF امکان شناسایی سرویس‌های داخلی، Shadow IT، متادیتای ابری (AWS/GCP/Azure)، پورت‌های باز و الگوهای پاسخ‌دهی وجود دارد. این رفتار عملاً به مهاجم دید داخلی از شبکه و معماری سرویس‌ها می‌دهد.

Collection (TA0009)

XXE به مهاجم اجازه می‌دهد محتوای فایل‌های محلی، تنظیمات، اسناد و اطلاعات محرمانه را از طریق خروجی تصویر (PNG/SVG) استخراج کند. این مرحله عملاً جمع‌آوری ساختاریافته داده را امکان‌پذیر می‌سازد.

Impact (TA0040)

XXE می‌تواند منجر به افشای داده‌های حساس، نشت credential، نقشه‌برداری از شبکه داخلی و ایجاد اختلال سرویس DoS مبتنی‌بر Entity Expansion شود. این تأثیر ترکیبی، GeoServer را در معرض خطر جدی قرار می‌دهد و می‌تواند زیرساخت GIS را از کار بیندازد.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-58360
  2. https://www.cvedetails.com/cve/CVE-2025-58360/
  3. https://github.com/geoserver/geoserver/security/advisories/GHSA-fjf5-xgmq-5525
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-58360
  5. https://vuldb.com/?id.333560
  6. https://osgeo-org.atlassian.net/browse/GEOS-11682
  7. https://github.com/B1ack4sh/Blackash-CVE-2025-58360
  8. https://gist.github.com/bolhasec/32fa035354d7cc9417aa297e2fe22b30
  9. https://nvd.nist.gov/vuln/detail/CVE-2025-58360
  10. https://cwe.mitre.org/data/definitions/611.html

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

پیام بگذارید