خانه » CVE-2025-12369

CVE-2025-12369

Extensions For Leaflet Map - Authenticated (Contributor+) Stored Cross-Site Scripting

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

چکیده

آسیب‌پذیری XSS ذخیره شده در پلاگین Extensions for Leaflet Map وردپرس تا نسخه‌ 4.7 شناسایی شده است که به دلیل عدم پاک سازی و خروجی سازی (escaping) مناسب ورودی‌های کاربر در شورت‌کد geojsonmarker رخ می‌دهد. این ضعف امنیتی به مهاجمان احراز هویت شده با دسترسی Contributor یا بالاتر اجازه می‌دهد اسکریپت‌های وب دلخواه (XSS) را در صفحات تزریق کنند. در نتیجه، با هر بار باز کردن صفحه، اسکریپت های تزریق شده اجرا می شوند.

توضیحات

آسیب‌پذیری CVE-2025-12369 در پلاگین Extensions for Leaflet Map وردپرس، ناشی از عدم پاک سازی و خروجی سازی مناسب ورودی‌های کاربر در شورت‌کد geojsonmarker (شورت‌کدی برای افزودن نشانگرها GeoJSON، فرمت جغرافیایی مبتنی بر JSON برای نمایش داده‌های مکانی روی نقشه) مطابق با CWE-79 است. مهاجم احراز هویت‌شده با دسترسی Contributor یا بالاتر می‌تواند ویژگی‌های شورت‌کد مانند popup، tooltip یا description را با اسکریپت مخرب (مانند alert(‘XSS’) یا پیلودهای پیشرفته‌تر برای سرقت کوکی‌ها) پر کند؛ این مقادیر بدون خروجی سازی ایمن در اسکریپت های تولید شده (مانند در تابع leafext_geojsonmarker_script) درج می شوند و هنگام بارگذاری صفحه اجرا خواهند شد.

بهره‌برداری از این ضعف به‌سادگی قابل خودکارسازی است؛ مهاجم می‌تواند با اسکریپت‌ها یا ابزارهای خودکار، از راه دور، بدون تعامل کاربر و تنها با دسترسی Contributor، شورت‌کد مخربی را در یک پست یا صفحه ویرایش‌شده تزریق کند. هنگامی که هر کاربری (حتی بازدیدکننده ناشناس) صفحه را باز کند، اسکریپت در زمینه سایت اجرا می‌شود.

پیامدهای آسیب‌پذیری شامل تأثیر محدود بر محرمانگی با افشای نشست، کوکی‌ها یا داده‌های کاربر از طریق XSS و یکپارچگی با تغییر یا دستکاری محتوای صفحه مانند هدایت به سایت مخرب است. در کد منبع (Trac وردپرس، فایل geojsonmarker.php حوالی خط 90) مقادیر JSON و HTML مستقیماً به خروجی ارسال می‌شوند، بدون اینکه با توابع ایمن‌سازی مانند esc_js برای جاوااسکریپت یا wp_kses_post برای فیلتر HTML بررسی شوند، در نتیجه امکان تزریق اسکریپت و بروز XSS وجود دارد. این آسیب پذیری در تغییرات کد (changeset) شماره 3387532 با پاک‌سازی از طریق wp_kses_post برای پیام‌های خطا و سایر اصلاحات در نسخه 4.8 پلاگین پچ شده است؛ بنابراین به‌روزرسانی به نسخه 4.8 یا جدیدتر توصیه می‌شود.

CVSS

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

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

Versions Product
affected through 4.7 Extensions for Leaflet Map

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

Versions Product
4.8 Extensions for Leaflet Map

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
7 site:.ir “extensions” “leaflet Map” Extensions for Leaflet Map
48,300 site:.ir “WordPress Plugin” WordPress Plugin

نتیجه گیری

این آسیب‌پذیری، تهدیدی با شدت متوسط برای سایت‌های وردپرس محسوب می‌شود که امکان اجرای اسکریپت‌های مخرب ذخیره‌شده توسط کاربران با دسترسی Contributor را فراهم می‌کند. با توجه به انتشار پچ رسمی، اجرای اقدامات زیر برای کاهش ریسک ضروری است:

  • به‌روزرسانی فوری: پلاگین را از طریق داشبورد وردپرس به نسخه 4.8 یا بالاتر به روزرسانی کنید.
  • تقویت پاک سازی شورت‌کدها: در قالب ها یا پلاگین های سفارشی، همیشه از توابع وردپرس مانند esc_attr برای ویژگی ها، esc_js برای جاوااسکریپت و wp_kses_post برای HTML استفاده کنید. همچنین، بررسی دسترسی کاربران مانند current_user_can(‘edit_posts’) را برای شورت‌کدهای حساس اعمال نمایید.
  • فعال‌سازی سیاست امنیتی محتوا: سیاست امنیتی محتوا (CSP) برای محدود کردن اجرای اسکریپت‌ها را در .htaccess یا php فعال سازید تا اجرای اسکریپت‌های inline محدود شود.
  • نظارت و لاگ: از پلاگین های امنیتی مانند Wordfence یا Sucuri برای اسکن خودکار XSS استفاده کنید؛ لاگ‌های وردپرس را برای شناسایی پیلودهای مشکوک در شورت‌کدها بررسی نمایید و از ابزارهایی مانند Fail2Ban برای مسدود کردن IPهای غیرمجاز بهره ببرید.
  • ایزوله‌سازی نقش‌ها: دسترسی کاربران با سطح Contributor یا بالاتر را محدود کنید (با پلاگین‌هایی مانند User Role Editor) و فقط به کاربران Editor یا بالاتر اجازه ویرایش صفحات حاوی شورت‌کدهای نقشه دهید. همچنین، احراز هویت دو مرحله‌ای (2FA) را برای کاربران فعال کنید.
  • تست امنیتی: سایت را با ابزارهایی مانند OWASP ZAP یا Burp Suite برای شناسایی XSS ذخیره شده اسکن کنید؛ همچنین، محتوای صفحات را برای پیلود های موجود (مانند جستجوی در پایگاه داده با wp_search_replace) پاک سازی نمایید.
  • بهترین شیوه‌ها: وردپرس، قالب ها و تمام پلاگین ها را به طور منظم به روزرسانی کنید و در شورت‌کدهای سفارشی از توکن امنیتی (nonce) برای اعتبارسنجی درخواست‌ها و جلوگیری از تزریق کدهای مخرب استفاده نمایید

اجرای این اقدامات، به ویژه به‌روزرسانی و اعمال CSP، ریسک بهره‌برداری از XSS را به طور چشمگیری کاهش داده و امنیت نقشه‌های تعاملی در اکوسیستم وردپرس را افزایش می‌دهد.

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

Initial Access (TA0001)
مهاجم با داشتن دسترسی Contributor (یا بالاتر) می‌تواند از طریق ویرایش یک پست/صفحه یا ارسال شورت‌کد مخرب به‌صورت مستقیم ورودیِ آسیب‌پذیر geojsonmarker را درج کند و بدین‌صورت نقطه ورودِ لازم برای بهره‌برداری XSS فراهم شود

Execution (TA0002)
کد جاوااسکریپتِ مخرب به‌صورت ذخیره‌شده (Stored XSS) در خروجی شورت‌کد قرار می‌گیرد و هنگام بارگذاری صفحه در کانتکست مرورگر اجرا می‌شود؛ این اجرا در سطح مرورگر امکان خواندن کوکی/توکن، اجرای درخواست‌های AJAX به دامنه مهاجم و اجرای عملیات سمت کلاینت را فراهم می‌کند.

Credential Access (TA0006)
از طریق XSS ذخیره‌شده مهاجم می‌تواند کوکی‌های نشست یا توکن‌های احراز هویت را سرقت کند و با استفاده از آن‌ها نشست مدیریتی را hijack کند که عملاً منجر به account takeover می‌شود.

Discovery (TA0007)
پس از درج شورت‌کد یا دستیابی به نشست مدیریتی، مهاجم می‌تواند ساختار صفحات حاوی نقشه، آیدی‌های آرایه‌های GeoJSON و مسیرهای API داخلی را استخراج کند تا payload های هدفمند یا زنجیره حمله بسازد.

Privilege Escalation (TA0004)
اگر مهاجم نشست مدیریتی کسب کند یا توانایی درج محتوا با قابلیت اجرای اسکریپت داشته باشد، می‌تواند نقش‌ها، مجوزها و تنظیمات پلاگین را تغییر دهد که معادلِ ارتقای سطح دسترسی در سطح برنامه است.

Collection (TA0009)
حین اجرای XSS، مهاجم می‌تواند به‌طور خودکار داده‌های فرم، فهرست کاربران یا محتوای صفحات را جمع‌آوری و به سرور کنترل‌شده ارسال کند؛ جمع‌آوری می‌تواند شامل داده‌های حساس کاربران و اطلاعات مدیریتی باشد.

Exfiltration (TA0010)
داده‌های جمع‌آوری‌شده از طریق فراخوانی‌های XHR، بارگذاری تصاویر یا درخواست‌های POST به دامنه مهاجم منتقل می‌شوند؛ کوکی‌ها، توکن‌ها یا پیکربندی‌ها می‌توانند به‌طور موثر استخراج شوند.

Defense Evasion (TA0005)
مهاجم می‌تواند با تغییر متن شورت‌کدها، رمزگذاری payload یا درج payload در مکان‌هایی که اسکن‌کننده‌ها کمتر بررسی می‌کنند، تشخیص را دشوار سازد.

Lateral Movement (TA0008)
با دستیابی به حساب مدیریتی یا ایجاد شورت‌کدهای ماندگار، مهاجم می‌تواند از همان سطح دسترسی برای نفوذ به سایر سایت‌های هم‌میزبان، سرویس‌های backend یا دیتابیس استفاده کند.

Impact
اثرات شامل Account takeover و تغییر/خراب‌سازی تنظیمات پلاگین است؛ مهاجم می‌تواند نشست‌های مدیریتی را سرقت کند، شورت‌کدها یا پیکربندی‌ها را تغییر دهد، backdoor دائمی قرار دهد و داده‌های کاربران را افشا کند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-12369
  2. https://www.cvedetails.com/cve/CVE-2025-12369/
  3. https://www.wordfence.com/threat-intel/vulnerabilities/id/6be74779-4db7-4d44-a706-285375f4fec9?source=cve
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-12369
  5. https://vuldb.com/?id.330976
  6. https://wordpress.org/plugins/extensions-leaflet-map
  7. https://plugins.trac.wordpress.org/browser/extensions-leaflet-map/tags/4.7/php/geojsonmarker.php#L90
  8. https://plugins.trac.wordpress.org/changeset/3387532/
  9. https://cwe.mitre.org/data/definitions/79.html

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

پیام بگذارید