خانه » CVE-2025-13838

CVE-2025-13838

WishSuite - Authenticated (Contributor+) Stored Cross-Site Scripting via 'button_text' Shortcode Attribute

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

چکیده

آسیب‌پذیری XSS ذخیره‌شده (Stored Cross-Site Scripting) در پلاگین WishSuite به دلیل عدم پاک‌سازی کافی ورودی‌ها و خنثی‌سازی نامناسب خروجی‌ها در پارامتر button_text شورت‌کد wishsuite_button است. این ضعف در تمام نسخه‌های1.5.1 و قدیمی‌تر وجود دارد و به کاربران احراز هویت‌شده با سطح دسترسی Contributor یا بالاتر اجازه می‌دهد اسکریپت‌های دلخواه را در صفحات تزریق کنند. اسکریپت‌های تزریق‌شده به‌صورت ذخیره‌شده در برنامه باقی می‌مانند و هنگام مشاهده صفحات آلوده توسط کاربران، در مرورگر آن‌ها اجرا می‌شوند و می‌توانند منجر به سرقت کوکی‌ها، نشست‌های کاربری، اطلاعات حساس یا اجرای اقدامات مخرب شوند.

توضیحات

آسیب‌پذیری CVE-2025-13838 در پلاگین WishSuite – Wishlist for WooCommerce ناشی از عدم خنثی‌سازی مناسب ورودی در زمان تولید صفحات وب مطابق با CWE-79 است. این پلاگین برای افزودن قابلیت لیست علاقه‌مندی‌ها به محصولات ووکامرس استفاده می‌شود و به کاربران اجازه می‌دهد گزینه‌های مرتبط با Wishlist را از طریق شورت‌کد در صفحات مختلف نمایش دهند.

ضعف امنیتی در پردازش پارامتر button_text شورت‌کد wishsuite_button رخ می‌دهد؛ به‌طوری‌که مقدار این پارامتر بدون پاک‌سازی مناسب ورودی (Input Sanitization) و بدون خنثی‌سازی صحیح خروجی (Output Escaping) مستقیماً در قالب HTML نمایش داده می شود.

مهاجمان احراز هویت‌شده با سطح دسترسی Contributor یا بالاتر می‌توانند با قرار دادن شورت‌کد wishsuite_button همراه با پیلود مخرب جاوااسکریپت در پارامتر button_text، کد دلخواه خود را در پست‌ها، صفحات یا قالب‌های سایت تزریق کنند. این داده‌های تزریق‌شده در پایگاه داده وردپرس ذخیره می‌شوند و هر زمان که صفحه‌ای حاوی این شورت‌کد بارگذاری می‌شود، کد مخرب بدون فیلتر  مناسب در مرورگر اجرا خواهد شد. در نتیجه، حمله به‌صورت XSS ذخیره‌شده انجام می‌شود و تمامی کاربران که صفحات آلوده را مشاهده می کنند، از جمله بازدیدکنندگان عادی یا مدیران سایت، در معرض اجرای اسکریپت مخرب قرار می‌گیرند. این مسئله می‌تواند منجر به پیامدهایی مانند سرقت کوکی‌های نشست (Session Hijacking)، اجرای اقدامات ناخواسته با سطح دسترسی کاربر قربانی، فیشینگ داخلی، تغییر محتوای صفحات، افشای اطلاعات حساس کاربران یا حتی سوءاستفاده از حساب مدیریتی در صورت مشاهده صفحه توسط مدیر شود. بهره‌برداری از این آسیب‌پذیری نیازمند دسترسی احراز هویت‌شده است اما تأثیر آن شامل تمامی کاربرانی می شود که صفحه آلوده را مشاهده می‌کنند. این ضعف امنیتی با انتشار نسخه 1.5.2 پلاگین و اعمال اصلاحات امنیتی در changeset 3419202 به‌طور کامل پچ شده است. در نسخه پچ شده، ورودی پارامتر button_text به‌درستی اعتبارسنجی شده و خروجی آن با استفاده از توابع امن وردپرس به‌صورت ایمن خنثی‌سازی و نمایش داده می‌شود.

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 1.5.1 WishSuite – Wishlist for WooCommerce

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

Versions Product
Update to version 1.5.2, or a newer patched version WishSuite – Wishlist for WooCommerce

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
28600 site:.ir ‘Wishlist for WooCommerce’

 

Wishlist for WooCommerce

نتیجه گیری

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

  • به‌روزرسانی فوری: پلاگین WishSuite را به نسخه 5.2 یا بالاتر به روزرسانی کنید. این اقدام اصلی‌ترین، ساده‌ترین و مؤثرترین راهکار برای رفع کامل آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • پاک‌سازی محتوای ذخیره‌شده: تمام پست‌ها، صفحات و محصولات حاوی شورت‌کد wishsuite_button را بررسی کرده و اسکریپت‌های تزریق‌شده را حذف کنید. برای این کار می‌توانید از ابزارهای جستجو در پایگاه داده یا پلاگین های امنیتی استفاده کنید.
  • تقویت امنیت وردپرس: از پلاگین های امنیتی معتبر مانند Wordfence، Sucuri یا All In One WP Security برای شناسایی و مسدودسازی حملات XSS بهره ببرید.
  • محدودسازی دسترسی‌ها: سطح دسترسی Contributor را محدود به کاربران مورد اعتماد کنید و از ابزارهای های مدیریت نقش مانند Members یا User Role Editor برای کنترل دقیق مجوزها استفاده نمایید.
  • نظارت بر ورودی‌ها: لاگ‌های وردپرس و وب‌سرور را برای شناسایی تلاش‌های تزریق اسکریپت مانیتور کنید و هشدارهای لازم را تنظیم نمایید.
  • فعال‌سازی فایروال اپلیکیشن وب (WAF): از فایروال اپلیکیشن وب مانند Cloudflare، Sucuri یا ModSecurity استفاده کنید تا پیلودهای XSS را در سطح ورودی فیلتر و مسدود کند.
  • آموزش توسعه‌دهندگان و مدیران: تیم را نسبت به اهمیت استفاده از توابع امن وردپرس در شورت‌کدها و خروجی‌ها آگاه سازید.
  • اسکن و ارزیابی منظم: پس از به‌روزرسانی، سایت را با ابزارهای اسکن آسیب‌پذیری وردپرس (مانند WPScan یا Wordfence) بررسی کنید تا اطمینان حاصل شود پچ اعمال شده و هیچ فایل مخربی باقی نمانده است.

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

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

Initial Access (TA0001)

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

Execution (TA0002)

پس از تزریق شورت‌کد wishsuite_button با پیلود مخرب در پارامتر button_text توسط کاربر احراز هویت‌شده Contributor+، کد جاوااسکریپت ذخیره‌شده در دیتابیس وردپرس بدون خنثی‌سازی خروجی مستقیماً در HTML صفحه رندر می‌شود و در مرورگر هر بازدیدکننده‌ای که صفحه را لود کند اجرا می‌گردد؛ این اجرا مستقل از سطح دسترسی مهاجم است و تنها نیازمند مشاهده صفحه آلوده توسط قربانی می‌باشد، که منجر به اجرای دستورات دلخواه مانند keylogging یا ارسال درخواست‌های مخرب می‌شود.

Persistence (TA0003)

مهاجم احراز هویت‌شده با نقش Contributor یا بالاتر، پیلود XSS را از طریق پارامتر button_text شورت‌کد wishsuite_button در پست‌ها یا صفحات دائمی سایت تزریق و ذخیره می‌کند؛ این کد مخرب به طور مداوم در دیتابیس وردپرس باقی می‌ماند و هر بار که صفحه توسط کاربران لود شود، اسکریپت اجرا می‌گردد، که این امر persistence را بدون نیاز به دسترسی مجدد مهاجم تضمین می‌کند، به شرطی که صفحه آلوده حذف یا پچ نشود.

(TA0006) Credential Access

با تزریق اسکریپت مخرب در button_text شورت‌کد wishsuite_button توسط Contributor+، کد XSS ذخیره‌شده هنگام مشاهده صفحه توسط قربانیان (مانند مدیران) اجرا شده و کوکی‌های session، توکن‌های احراز هویت یا اطلاعات محلی ذخیره‌شده مانند localStorage را از مرورگر قربانی استخراج و به سرور مهاجم ارسال می‌کند؛ این فرآیند نیازمند مشاهده صفحه آلوده توسط کاربر دارای اعتبار حساس است و بدون نیاز به دسترسی مستقیم مهاجم به مرورگر قربانی عمل می‌نماید.

(TA0007) Discovery

مهاجم پس از احراز هویت به عنوان Contributor+، شورت‌کد مخرب را در button_text تزریق می‌کند تا اسکریپت XSS هنگام اجرای مرورگر کاربران، endpointهای داخلی سایت، لیست کاربران، نسخه وردپرس یا پلاگین‌ها را از طریق درخواست‌های AJAX یا DOM scraping شناسایی و به مهاجم گزارش دهد؛ این discovery تنها زمانی فعال می‌شود که صفحه آلوده توسط قربانیان با دسترسی مناسب مشاهده گردد.

(Impact – TA0040):

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

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-13838
  2. https://www.cvedetails.com/cve/CVE-2025-13838/
  3. https://www.wordfence.com/threat-intel/vulnerabilities/id/4e1cd584-ffb8-43d6-a7b6-141c59ac463d?source=cve
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-13838
  5. https://vuldb.com/?id.337699
  6. https://plugins.trac.wordpress.org/browser/wishsuite/trunk/includes/templates/wishsuite-button-add.php#L1
  7. https://plugins.trac.wordpress.org/browser/wishsuite/tags/1.5.1/includes/templates/wishsuite-button-add.php#L1
  8. https://plugins.trac.wordpress.org/changeset/3419202/
  9. https://nvd.nist.gov/vuln/detail/CVE-2025-13838
  10. https://cwe.mitre.org/data/definitions/79.html

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

پیام بگذارید