- شناسه CVE-2025-9550 :CVE
- CWE-79 :CWE
- yes :Advisory
- منتشر شده: اکتبر 10, 2025
- به روز شده: اکتبر 10, 2025
- امتیاز: 6.1
- نوع حمله: Cross Site Scripting (XSS)
- اثر گذاری: Unknown
- حوزه: سیستم مدیریت محتوا
- برند: Drupal
- محصول: Facets
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری Cross-Site Scripting (XSS) در ماژول Facets سیستم مدیریت محتوای Drupal به دلیل عدم اعمال پاکسازی و خنثیسازی مناسب دادههای ورودی رخ میدهد. مهاجم دارای دسترسی administer facets، میتواند اسکریپت جاوااسکریپت مخرب را در تنظیمات Facets ذخیره کند. این اسکریپت هنگام نمایش نتایج جستجو و رابط Faceted Search برای سایر کاربران، از جمله مدیران اجرا میشود و میتواند منجر به سرقت کوکیهای احراز هویت، تغییر محتوای صفحه یا هدایت کاربران به صفحات فیشینگ شود.
توضیحات
آسیبپذیری CVE-2025-9550 از نوع خنثیسازی نادرست دادههای ورودی هنگام تولید صفحات وب مطابق با CWE-79 است که منجر به حمله Cross‑Site Scripting (XSS) در ماژول Facets سیستم مدیریت محتوای Drupal میشود. ماژول Facets برای ایجاد و مدیریت رابطهای جستجوی مبتنی بر فیلترهای پویا (Faceted Search) مورد استفاده قرار میگیرد و امکان ساخت فیلترهای قابل تنظیم بر اساس طبقه بندی محتوا و سایر ویژگیهای را فراهم می کند.
ریشه این ضعف در عدم اعمال فرآیند پاکسازی و خنثیسازی مناسب روی برخی دادههای ورودی است؛ بهویژه دادههایی که توسط کاربری با مجوز administer facets ارائه میشوند. این سطح دسترسی معمولاً به نقشهای مدیریتی یا ویرایشگر ارشد تعلق دارد. مهاجم دارای این سطح دسترسی میتواند در تنظیمات یک facet، پیلود جاوااسکریپت مخرب تزریق کند. این پیلود در پایگاه داده ذخیره شده و هنگام رندر شدن صفحه جستجو یا بلوکهای Facets برای سایر کاربران از جمله مدیر اصلی سایت بهصورت خودکار و در زمینه صفحه اجرا میشود.
مهاجم برای بهره برداری تنها به دسترسی مدیریتی ماژول Facets نیاز دارد و میتواند از طریق فرمهای مدیریتی، مرورگر یا ارسال درخواستهای مستقیم HTTP، محتوای مخرب مورد نظر خود را تزریق کند. با توجه به اینکه این XSS در حوزه تغییر یافته (Scope Changed) اجرا میشود، امکان دور زدن برخی مکانیزمهای امنیتی داخلی Drupal نیز وجود دارد. پیامدهای این آسیب پذیری تاثیر محدود بر محرمانگی با سرقت کوکیهای احراز هویت، توکنهای نشست و دادههای حساس کاربران و نقض محدود یکپارچگی از جمله تغییر محتوای صفحه، تزریق کد مخرب در رابطهای مدیریتی یا دستکاری عملکرد جستجو است.
از آنجا که مهاجم برای بهرهبرداری از این آسیبپذیری باید دسترسی معتبر و سطح نسبتاً بالا داشته باشد، شدت این ضعف در سطح Moderately Critical طبقه بندی شده و این موضوع از تبدیل آن به سطح بحرانی (Critical) جلوگیری کرده است. این ضعف امنیتی در نسخههای 2.0.10 و 3.0.1 ماژول Facets بهصورت کامل پچ شده است و تمام سایتهای Drupal که از این ماژول استفاده میکنند باید فوراً بهروزرسانی شوند.
CVSS
| Score | Severity | Version | Vector String |
| 6.1 | MEDIUM | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected from 0.0.0 before 2.0.10
affected from 3.0.0 before 3.0.1 |
Facets |
لیست محصولات بروز شده
| Versions | Product |
| upgrade to Facets 2.0.10 or Facets 3.0.1 | Facets |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Drupal را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 222,000 | site:.ir “Drupal” | Drupal |
نتیجه گیری
این آسیبپذیری با شدت متوسط از نوع Cross-Site Scripting (XSS) در ماژول Facets است و میتواند توسط هر کاربری که دارای مجوز administer facets باشد مورد سوءاستفاده قرار گیرد. بهرهبرداری موفق از این ضعف میتواند منجر به سرقت نشستهای کاربری مدیریت، دستکاری محتوای سایت یا اجرای اسکریپتهای مخرب در مرورگر سایر کاربران شود. با توجه به انتشار پچ رسمی، اجرای فوری اقدامات زیر ضروری است:
- بهروزرسانی فوری: ماژول Facets را در اسرع وقت به نسخه 2.0.10 یا 3.0.1 به روزرسانی کنید. این اقدام، مؤثرترین و قطعیترین راهکار برای رفع آسیبپذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
- محدودسازی مجوزها: مجوز administer facets را فقط به کاربران کاملاً قابل اعتماد اختصاص دهید. در صورت امکان، نقشهای سفارشی با حداقل سطح دسترسی لازم ایجاد کنید تا دامنه سوءاستفاده احتمالی کاهش یابد.
- فعالسازی CSP: یک سیاست امنیت محتوا (CSP) سختگیرانه برای سایت تعریف کنید تا اجرای اسکریپتهای inline، eval و منابع ناشناخته را مسدود کند. CSP میتواند در صورت بروز XSS ، اثر آن را بهشدت محدود کند و مانع سرقت نشست یا اجرای کد پیشرفته شود.
- استفاده از ماژولهای امنیتی Drupal: از ماژولهای امنیتی معتبر برای فیلتر خروجیها، نظارت بر تغییرات و جلوگیری از محتوای مشکوک استفاده کنید. این ابزارها امکان تشخیص زودهنگام عملکرد غیرعادی را فراهم میکنند.
- اسکن و ممیزی: پس از بهروزرسانی، سایت را با ابزارهایی مانند OWASP ZAP یا Drupalgeddon Scanner اسکن کنید تا مطمئن شوید پیلودهای XSS موجود در پایگاه داده (در صورت وجود) شناسایی و حذف شدهاند.
- آموزش تیم: توسعهدهندگان و مدیران محتوا را درباره ریسک XSS و لزوم استفاده از تابعهای فیلتر و پاکسازی Drupal آگاه سازید.
اجرای سریع بهروزرسانی به نسخههای امن و محدودسازی دقیق مجوزها، ریسک ناشی از این آسیبپذیری را به حداقل رسانده و امنیت رابطهای جستجوی مبتنی بر Facets را تضمین می کند.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
مهاجم با داشتن سطح دسترسی معتبر و محدود (administer facets) میتواند از مسیرهای مدیریتی Drupal برای تزریق محتوای مخرب استفاده کند. این تزریق در تنظیمات Facets ذخیره میشود و هنگام رندر صفحات جستجو برای کاربران دیگر اجرا میگردد، که معادل ورود اولیه به محیط مرورگر قربانی است.
Execution (TA0002)
کد جاوااسکریپت تزریقشده در زمینه DOM مرورگر قربانی اجرا میشود. این اسکریپت میتواند درخواستهای ناخواسته، اجرای کد سمت مرورگر، دزدی نشست یا تغییر مستقیم در محتوا را انجام دهد. اجرای کد در سطح client-side است ولی اثرگذاری آن به حسابهای مدیریتی قابل سرایت است.
Credential Access (TA0006)
اجرای XSS امکان استخراج کوکیهای احراز هویت، توکنهای نشست و دادههای ذخیرهشده در مرورگر کاربران هدف را فراهم میکند. چون اجرای اسکریپت در context سایت انجام میشود، سیاستهای SOP را دور نمیزند و سرقت نشست ممکن میشود.
Discovery (TA0007)
اسکریپت مخرب میتواند ساختار DOM، لینکهای مدیریتی، نقشها و فرمهای حساس را شناسایی کند. دادههای صفحه مدیریت Facets یا مسیرهای داخلی Drupal برای مهاجم قابل جمعآوری میشود.
Lateral Movement (TA0008)
پس از سرقت توکن نشست یا کوکیهای مدیر، مهاجم میتواند بدون نیاز به credential های واقعی، وارد پنل مدیریت شده و به بخشهای دیگر CMS حرکت کند. این مسیر معادل pivoting میان بخشهای مدیریتی Drupal است.
Defense Evasion (TA0005)
Payload XSS در دیتابیس ذخیره میشود و هنگام رندر HTML بدون هشدار اجرا میگردد. این روش معمولاً در لاگهای Drupal شواهد مشخصی بر جای نمیگذارد و میتواند با obfuscation جاوااسکریپت یا ارسال beacon های کمحجم از دید مانیتورینگ پنهان شود.
Collection (TA0009)
اسکریپت مخرب میتواند محتوای فرمها، دادههای نمایشدادهشده در پنل مدیریت، اطلاعات کاربران و ساختار Facets را استخراج کند. خواندن دادههای حساس داخل صفحه و ارسال آنها به سرور فرمان مهاجم امکانپذیر است.
Exfiltration (TA0010)
اطلاعات جمعآوریشده (کوکیها، توکنها، دادههای مدیریتی) میتواند از طریق درخواستهای XHR، fetch یا image beacon به یک دامنه خارجی ارسال شود. چون اجرای کد در محدوده کاربر قربانی است، محدودیتهای خروجی سمت سرور را دور میزند.
Impact (TA0040)
اجرای موفق XSS ممکن است به دستکاری نمایش محتوا، تزریق اسکریپت روی صفحات جستجو، تغییر ریدایرکتها، فیشینگ درونسایتی و در نهایت تصاحب حساب مدیر منجر شود. این اثرگذاری بهدلیل اجرای کد در دامنه مدیریتی میتواند عملیات سایت را مختل کند.
منابع