The JSX renderer escapes style attribute object values for HTML but not for CSS. Untrusted input in a style object value or property name can therefore inject additional CSS declarations into the rendered style attribute. The impact is limited to CSS and does not allow JavaScript execution or HTML attribute breakout.
style object values are serialized into a CSS declaration list and escaped for HTML attribute context only. Characters that act as CSS declaration boundaries — such as ;, comment markers, quoted strings, and block delimiters — are valid in HTML attribute content and can extend a value beyond its assigned property.
This issue arises when untrusted input is interpolated into a JSX style object and rendered server-side.
An attacker who can control the value or property name of a style object may inject arbitrary CSS declarations. This may lead to:
url(...)This issue affects applications that render JSX on the server with style object values or property names derived from untrusted input.
{
"nvd_published_at": null,
"cwe_ids": [
"CWE-116",
"CWE-74"
],
"severity": "MODERATE",
"github_reviewed": true,
"github_reviewed_at": "2026-05-09T00:46:44Z"
}