- شناسه CVE-2025-12848 :CVE
- CWE-79 :CWE
- yes :Advisory
- منتشر شده: نوامبر 26, 2025
- به روز شده: نوامبر 26, 2025
- امتیاز: 7.0
- نوع حمله: Cross Site Scripting (XSS)
- اثر گذاری: Browser Based Code Execution
- حوزه: سیستم مدیریت محتوا
- برند: Drupal
- محصول: Drupal
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch نشده
چکیده
آسیبپذیری Cross-Site Scripting (XSS) در ماژول Webform Multiple File Upload در سیستم مدیریت محتوای Drupal به دلیل عدم پاکسازی صحیح نام فایلها در رندرر(renderer) فایلها رخ میدهد. مهاجم میتواند با آپلود فایلی با نام مخرب (مثل “>.jpg”) در فیلدی که در آن اعتبارسنجی نوع فایل غیرفعال است، اسکریپتهای دلخواه را در مرورگر کاربران اجرا کند.
توضیحات
آسیبپذیری CVE-2025-12848 در ماژول Webform Multiple File Upload سیستم مدیریت محتوای Drupal ناشی از خنثیسازی نادرست ورودیها هنگام تولید صفحات وب (Cross-Site Scripting) مطابق با CWE-79 است. این ضعف در کتابخانه شخص ثالث jquery.MultiFile.js موجود در این ماژول رخ میدهد،که هنگام نمایش لیست فایلهای آپلود شده، نام فایلها را بدون انجام پاکسازی یا خنثیسازی در خروجی HTML قرار میدهد این آسیبپذیری به مهاجم این امکان را میدهد که از طریق حمله Cross-Site Scripting (XSS)، اسکریپتهای دلخواه خود را در مرورگر کاربران اجرا کند.
مهاجم ناشناس میتواند با ایجاد یا دسترسی به یک نود Webform که فیلد Multifile دارد، اعتبارسنجی نوع فایل را در تنظیمات فیلد غیرفعال کند. بهطور پیشفرض، این گزینه فعال است اما مدیران سایت میتوانند آن را غیرفعال کنند. در صورتی که اعتبارسنجی نوع فایل غیرفعال باشد، مهاجم میتواند فایلی با نام مخرب مانند “<img src=1 onerror=alert(document.domain)>” یا پیلودهای پیچیدهتری مانند سرقت کوکیها یا کیلاگرها آپلود کند. این نامهای مخرب به عنوان ورودی در فیلد Multifile پردازش میشوند و از آنجا که کتابخانه jquery.MultiFile.js نام فایل را بدون انجام هیچ نوع خنثیسازی در خروجی HTML قرار میدهد، کد جاوا اسکریپت در مرورگر کاربر اجرا میشود. هنگامی که هر کاربری (از جمله ادمینها) صفحه فرم یا لیست ارسالها را مشاهده کند، نام فایلها بهطور مستقیم در HTML رندر میشود و در نتیجه اسکریپتهای مخرب اجرا میگردد. این حمله از نوع XSS است، به این معنی که پیلودها برای همیشه در پایگاه داده ذخیره میشوند و هر بار که صفحه بارگذاری شود، مجدداً اجرا خواهند شد. این آسیبپذیری به سادگی قابل بهرهبرداری است و هیچ دسترسی خاصی از سوی مهاجم نیاز ندارد؛ تنها کافی است که اعتبارسنجی نوع فایل توسط مدیر غیرفعال شده باشد.
این ضعف در کتابخانه شخص ثالث jquery.MultiFile.js با pull request #44 پچ شده است. با این حال، از آنجا که Drupal 7 به پایان عمر پشتیبانی (EOL) خود رسیده، این ماژول هیچگاه بهصورت رسمی بهروزرسانی نشده است. بنابراین، راهکار فعلی این آسیبپذیری اعمال پچ دستی موجود یا جایگزینی کتابخانه jquery.MultiFile.js با نسخه پچشده آن است.
CVSS
| Score | Severity | Version | Vector String |
| 7.0 | HIGH | 4.0 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:H/ SC:N/SI:N/SA:N/S:N/R:U/V:D/RE:L/U:Amber |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected at 7.x | Drupal |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Drupal را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 224,000 | site:.ir “Drupal” | Drupal |
نتیجه گیری
این آسیبپذیری با شدت بالا از نوع XSS در ماژول قدیمی Webform Multiple File Upload سیستم مدیریت محتوای Drupal است که حتی مهاجم ناشناس را قادر به اجرای اسکریپت در مرورگر ادمین میکند. با توجه به پایان عمر پشتیبانی Drupal 7 و عدم انتشار نسخه رسمی جدید، اجرای فوری اقدامات زیر ضروری است:
- ارتقا به نسخه جدیدتر Drupal: بهترین و امنترین اقدام، ارتقا سایت از Drupal 7 به نسخههای پشتیبانیشده (مثلاً 9 یا 10) است. این اقدام امنیت سایت را به طور قابل توجهی افزایش میدهد.
- اعمال پچ دستی: در صورتی که هنوز از Drupal 7 استفاده میکنید، باید پچ ارائهشده در صفحه امنیتی پروژه Webform Multiple File Upload را فوراً اعمال کنید. همچنین، میتوانید کتابخانه MultiFile.js را با نسخه پچشده موجود در مخزن GitHub جایگزین نمایید.
- غیرفعالسازی ماژول: اگر به این ماژول نیاز ندارید، توصیه میشود که Webform Multiple File Upload را کاملاً غیرفعال و حذف کنید تا از هرگونه ریسک احتمالی جلوگیری شود.
- فعالسازی اجباری اعتبارسنجی نوع فایل: : برای تمام فیلدهای Multifile، گزینه Restrict file extensions را فعال کرده و تنها پسوندهای امن (مثل jpg, png, pdf) را مجاز کنید. این کار آپلود فایلهای مخرب را غیرممکن میسازد.
- استفاده از WAF و CSP: برای افزایش امنیت، از فایروال اپلیکیشن وب (WAF) مانند Cloudflare یا ModSecurity استفاده کنید. همچنین، سیاست امنیتی محتوا (CSP) را بهطور سختگیرانه تنظیم نمایید تا از اجرای اسکریپتهای inline جلوگیری شود.
- غیرفعالسازی نمایش نام فایل: در صورت امکان، نمایش نام فایل آپلودشده را در صفحات عمومی غیرفعال کنید یا از تابع check_plain دروپال برای پاکسازی استفاده کنید.
با توجه به پایان عمرDrupal 7، استفاده از آن ریسک بسیار بالایی دارد. بنابراین، جایگزینی آن با نسخههای جدیدتر یا اعمال پچ و تدابیر محدودکننده باید در اولویت قرار گیرد تا از سوءاستفاده و بهرهبرداری گسترده از آسیبپذیری XSS جلوگیری شود.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
مهاجم با آپلود یک فایل دارای نام مخرب در Webform که اعتبارسنجی نوع فایل در آن غیرفعال شده، ورودی آلوده را وارد چرخه پردازش میکند. این نقطه ورود بسیار محتمل است چون نیاز به هیچ سطح دسترسی ویژه ندارد و تنها به یک فرم عمومی یا قابلدسترس نیاز است.
Execution (TA0002)
پس از رندر شدن نام فایل در خروجی HTML ، اسکریپت تزریقشده مستقیماً در مرورگر قربانی (کاربر یا ادمین) اجرا میشود. این همان اجرای کد سمتکلاینت است و وقوع آن در سناریوی XSS ذخیرهشده تقریباً قطعی است.
Credential Access (TA0006)
با اجرای اسکریپت، مهاجم میتواند کوکیهای احراز هویت، توکنهای جلسه، یا localStorage را خوانده و برای تصاحب نشست ادمین استفاده کند. این تکنیک در XSS بسیار رایج است و احتمال وقوع آن بالا ارزیابی میشود.
Discovery (TA0007)
اسکریپت مهاجم میتواند ساختار صفحات مدیریتی، endpointهای AJAX، یا دسترسیهای موجود در Drupal را از داخل مرورگر ادمین شناسایی کند. این رفتار در XSS پایدار محتمل و آسان است.
Privilege Escalation (TA0004)
اگر کوکیهای ادمین یا توکنهای CSRF افشا شوند، مهاجم میتواند مستقیماً وارد پنل مدیریت شود یا درخواستهای سطحبالا بهجای قربانی ارسال کند. این مسیر با XSS ذخیرهشده بسیار محتمل است.
Lateral Movement (TA0008)
پس از گرفتن نشست ادمین، مهاجم میتواند به سایر بخشهای Drupal، ماژولها، وبسرویسها یا حتی سرورها و سرویسهای متصل دسترسی پیدا کند. این مرحله در سناریوهای واقعی با احتمال متوسط رو به بالا قابل رخ دادن است.
Collection (TA0009)
اسکریپت XSS قادر است دادههای فرمها، ورودی کاربران، ایمیلها، توکنها یا محتوای صفحات را جمعآوری کرده و برای مهاجم ارسال کند. این بخش در حملات XSS پایدار بسیار محتمل است.
Exfiltration (TA0010)
مهاجم دادههای جمعآوریشده را از طریق درخواستهای HTTP، WebSocket یا endpoints خارجی خارج میکند. در بستر XSS این کار ساده و محتمل است.
Defense Evasion (TA0005)
کد مخرب در قالب یک نام فایل بیخطر جاسازی شده و چون Drupal 7 ماژول را پچ نکرده، هیچ هشدار یا خطای امنیتی ایجاد نمیشود. این رفتار، پنهانکاری حمله را بسیار محتمل میکند.
Impact (TA0040)
سرقت نشست ادمین، تغییر محتوای سایت، تزریق کد ماندگار، ربایش حساب، و اجرای مداوم اسکریپت در مرورگر کاربران از پیامدهای مستقیم این ضعف است و با احتمال بالا قابل وقوع است.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-12848
- https://www.cvedetails.com/cve/CVE-2025-12848/
- https://www.drupal.org/node/3105204
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-12848
- https://vuldb.com/?id.333557
- https://github.com/fyneworks/multifile/pull/44
- https://nvd.nist.gov/vuln/detail/CVE-2025-12848
- https://cwe.mitre.org/data/definitions/79.html