CVE-2026-49210: symfony/ux-live-component: XSS via attacker-controlled child component tag
Symfony\UX\LiveComponent\Util\ChildComponentPartialRenderer::createHtml() interpolates the $childTag argument directly into the HTML output as a tag name, without escaping or validation. The value originates from client-controlled JSON (children[id].tag) parsed by LiveComponentSubscriber and propagated through InterceptChildComponentRenderSubscriber, so an attacker who can reach the Live Component endpoint can inject arbitrary HTML, including <script> tags, on any re-render of a Live Component that contains at least one child component.
In the default configuration, the Live Component endpoint is gated by an Accept: application/vnd.live-component+html request-header check that cannot be set cross-origin without a CORS preflight, so the issue is primarily a defense-in-depth gap. It becomes directly exploitable on applications that have relaxed CORS to allow this header from untrusted origins, or that have been pivoted from another same-origin XSS.
References
- github.com/FriendsOfPHP/security-advisories/blob/master/symfony/ux-live-component/CVE-2026-49210.yaml
- github.com/advisories/GHSA-38x5-rcv4-xf7x
- github.com/symfony/ux/commit/fbc5e9a1bda7e4556be21bb1d970f382760ed9a9
- github.com/symfony/ux/security/advisories/GHSA-38x5-rcv4-xf7x
- nvd.nist.gov/vuln/detail/CVE-2026-49210
Code Behaviors & Features
Detect and mitigate CVE-2026-49210 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →