- شناسه CVE-2025-27108 :CVE
- CWE-79 / CWE-116 :CWE
- yes :Advisory
- منتشر شده: فوریه 21, 2025
- به روز شده: فوریه 21, 2025
- امتیاز: 7.3
- نوع حمله: T1059.007
- اثر گذاری: Cross-Site Scripting(XSS)
- حوزه: برنامه نویسی
- برند: ryansolid
- محصول: dom-expressions
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
یک آسیبپذیری در ryansolid dom-expressions تا نسخه 0.39.4 شناسایی شده است. این مشکل بر روی تابع replace() تأثیر میگذارد و میتواند به حملات (Cross-Site Scripting) XSS منجر شود. شناسه این آسیبپذیری CVE-2025-27108 است. این حمله میتواند از راه دور انجام شود. توصیه میشود که کاربران، نسخه آسیبپذیر را به نسخه جدیدتر ارتقا دهند.
توضیحات
آسیبپذیری مذکور ناشی از استفاده نادرست از تابع replace() در dom-expressions است. این مشکل به دلیل عدم خنثیسازی مناسب ورودیها توسط کاربر رخ میدهد که منجر به اجرای کد مخرب در مرورگر کاربران میشود. این آسیبپذیری تحت CWE-79 طبقهبندی شده است، که نشاندهنده یک مشکل در خنثیسازی دادههای کاربر قبل از نمایش در صفحه وب است.
dom-expressions یک Runtime با دقت بالا برای رندر کارآمد DOM است. در نسخههای آسیبپذیر، استفاده از متد replace() در جاوااسکریپت امکان اجرای حملات XSS را فراهم میکند، بهویژه زمانی که از الگوهای خاص جایگزینی که با $ شروع میشوند، مانند “$` یا “\$` استفاده شود.
بسته solid-meta این مشکل را دارد زیرا از useAffect و context providers استفاده میکند که مواردی را در هدر HTML تزریق میکنند. کتابخانه “dom-expressions” نیز برای جایگذاری این موارد از متد replace() استفاده میکند که در برابر الگوهای خاص جایگزینی که در بالا ذکر شد، آسیبپذیر است.
این بدان معناست که اگر ویژگیهای یک تگ مربوط به مواردی (مانند <meta>) حاوی دادههای کنترلشده توسط کاربر باشند، میتوانند در معرض حمله XSS قرار بگیرند.
سناریوی حمله
اگر ویژگیهای (Attributes) تگ <meta> در solid-meta بهصورت کاربر تعریفشده باشند، مهاجمان میتوانند با قرار دادن یک ورودی مخرب از replace() سوءاستفاده کرده و کد جاوااسکریپت مخرب را در مرورگر قربانی اجرا کنند.
برای مثال، ممکن است در یک صفحه پروفایل کاربری متا تگهای Open Graph وجود داشته باشند، اما اگر مهاجمان از طریق ورودی کاربر یک مقدار مخرب وارد کنند، میتوانند کدی مخرب از جاوااسکریپت را اجرا کنند. این مشکل میتواند به صورت Stored XSS نیز مورد اکسپلویت قرار گیرد و مشکلات بیشتری ایجاد کند.
احتمال اکسپلویت این آسیب پذیری بالا است و حمله از راه دور قابل اجرا است و نیازی به احراز هویت ندارد و تنها نیازمند تعامل کاربر است.
MITRE ATT&CK حمله ناشی از این آسیب پذیری را براساس T1059.007 بیان کرده است.
این مشکل در نسخه 0.39.5 برطرف شده است.
CVSS
Score | Severity | Version | Vector String |
7.3 | HIGH | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L |
لیست محصولات آسیب پذیر
Versions | Product |
affected at < 0.39.5 | dom-expressions |
لیست محصولات بروز شده
Versions | Product |
0.39.5 | dom-expressions |
نتیجه گیری
پچ 521f75dfa89ed24161646e7007d9d7d21da07767 این مشکل را حل میکند. این مشکل در نسخه 0.39.5 برطرف شده است.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-27108
- https://www.cvedetails.com/cve/CVE-2025-27108/
- https://github.com/ryansolid/dom-expressions/commit/521f75dfa89ed24161646e7007d9d7d21da07767
- https://github.com/ryansolid/dom-expressions/security/advisories/GHSA-hw62-58pr-7wc5
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-27108
- https://vuldb.com/?id.296530
- https://nvd.nist.gov/vuln/detail/CVE-2025-27108
- https://cwe.mitre.org/data/definitions/79.html
- https://cwe.mitre.org/data/definitions/116.html