CVE-2025-27108

dom-expressions is a Fine-Grained Runtime for Performant DOM Rendering. In affected versions the use of javascript's `.replace()` opens up to potential Cross-site Scripting (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. This issue has been addressed in version 0.39.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Configurations

Configuration 1 (hide)

cpe:2.3:a:ryansolid:dom_expressions:*:*:*:*:*:*:*:*

History

27 Feb 2025, 20:18

Type Values Removed Values Added
References () https://github.com/ryansolid/dom-expressions/commit/521f75dfa89ed24161646e7007d9d7d21da07767 - () https://github.com/ryansolid/dom-expressions/commit/521f75dfa89ed24161646e7007d9d7d21da07767 - Patch
References () https://github.com/ryansolid/dom-expressions/security/advisories/GHSA-hw62-58pr-7wc5 - () https://github.com/ryansolid/dom-expressions/security/advisories/GHSA-hw62-58pr-7wc5 - Vendor Advisory
First Time Ryansolid
Ryansolid dom Expressions
Summary
  • (es) dom-expressions es un entorno de ejecución de grano fino para la representación de DOM de alto rendimiento. En las versiones afectadas, el uso de `.replace()` de javascript abre la puerta a posibles vulnerabilidades de Cross-site Scripting (XSS) con los patrones de reemplazo especiales que comienzan con `$`. En particular, cuando los atributos de la etiqueta `Meta` de solid-meta están definidos por el usuario, los atacantes pueden utilizar los patrones de reemplazo especiales, ya sea `$'` o `$\`` para lograr XSS. El paquete solid-meta tiene este problema, ya que utiliza `useAffect` y proveedores de contexto, que inyectan los activos utilizados en el encabezado html. "dom-expressions" utiliza `.replace()` para insertar los activos, lo que es vulnerable a los patrones de reemplazo especiales enumerados anteriormente. Esto significa efectivamente que si los atributos de una etiqueta de activo contuvieran datos controlados por el usuario, sería vulnerable a XSS. Por ejemplo, puede haber metaetiquetas para el protocolo Open Graph en una página de perfil de usuario, pero si los atacantes configuran la consulta del usuario con algún payload que abuse de `.replace()`, entonces podrían ejecutar código JavaScript arbitrario en el navegador web de la víctima. Además, podría almacenarse y causar más problemas. Este problema se ha solucionado en la versión 0.39.5 y se recomienda a todos los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.
CPE cpe:2.3:a:ryansolid:dom_expressions:*:*:*:*:*:*:*:*

21 Feb 2025, 22:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-02-21 22:15

Updated : 2025-02-27 20:18


NVD link : CVE-2025-27108

Mitre link : CVE-2025-27108

CVE.ORG link : CVE-2025-27108


JSON object : View

Products Affected

ryansolid

  • dom_expressions
CWE
CWE-79

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

CWE-116

Improper Encoding or Escaping of Output