CVE-2025-27108 – dom-expressions
Package
Manager: npm
Name: dom-expressions
Vulnerable Version: >=0 <0.39.5
Severity
Level: High
CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
EPSS: 0.0005 pctl0.15297
Details
DOM Expressions has a Cross-Site Scripting (XSS) vulnerability due to improper use of string.replace > [!NOTE] > This advisory was originally emailed to community@solidjs.com by @nsysean. To sum it up, the use of javascript's `.replace()` opens up to potential XSS vulnerabilities with the special replacement patterns beginning with `$`. Particularly, when the attributes of `Meta` tag from solid-meta are user-defined, attackers can utilise the special replacement patterns, either `$'` or `$\`` to achieve XSS. The solid-meta package has this issue since it uses `useAffect` and context providers, which injects the used assets in the html header. "dom-expressions" uses `.replace()` to insert the assets, which is vulnerable to the special replacement patterns listed above. This effectively means that if the attributes of an asset tag contained user-controlled data, it would be vulnerable to XSS. For instance, there might be meta tags for the open graph protocol in a user profile page, but if attackers set the user query to some payload abusing `.replace()`, then they could execute arbitrary javascript in the victim's web browser. Moreover, it could be stored and cause more problems.
Metadata
Created: 2025-02-25T17:49:57Z
Modified: 2025-02-25T17:49:58Z
Source: https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/02/GHSA-hw62-58pr-7wc5/GHSA-hw62-58pr-7wc5.json
CWE IDs: ["CWE-116", "CWE-79"]
Alternative ID: GHSA-hw62-58pr-7wc5
Finding: F008
Auto approve: 1