Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Stored XSS requires authenticated workspace-owner access (PR:L), victim must actively view the page (UI:R), and impact crosses into victim session boundary (S:C).
Primary rating from Vendor (https://github.com/coder/coder).
CVSS VectorVendor: https://github.com/coder/coder
Lifecycle Timeline
1DescriptionCVE.org
Summary
The AgentLogLine dashboard component instantiated ansi-to-html without escapeXML: true and inserted the result via dangerouslySetInnerHTML so HTML embedded in workspace agent log lines was rendered as live markup. Server-side sanitization did not neutralize HTML metacharacters.
> Note: Exploitation requires a victim to view attacker-controlled agent logs in the dashboard.
Impact
A user who could run a workspace could emit arbitrary HTML into agent logs; when another user, including an administrator, viewed the workspace page, it rendered in their session. Content Security Policy blocked inline scripts but an attacker could still inject a meta refresh redirect, style rules for UI redressing or CSS-based exfiltration or external img beacons. This required workspace-owner access and a victim viewing the page.
Patches
The fix enables escapeXML: true so HTML metacharacters are escaped before DOM insertion.
The fix was backported to all supported release lines:
Workarounds
None.
Resources
- Fix: #25808
Credits
Coder would like to thank Anthropic's Security Team (ANT-2026-22449) for independently disclosing this issue!
AnalysisAI
Stored cross-site scripting in Coder's AgentLogLine dashboard component allows any workspace owner to inject arbitrary HTML into agent log output, which renders as live markup in the browser session of any user - including administrators - who views the workspace page. The vulnerability stems from the ansi-to-html library being invoked without escapeXML: true, with output passed directly to React's dangerouslySetInnerHTML without server-side sanitization. While Coder's Content Security Policy blocks inline script execution, the attack surface still includes meta refresh redirects, CSS-based data exfiltration, UI redressing, and external image beacons; no public exploit is identified at time of analysis, and patched versions are available across all supported release lines.
Technical ContextAI
The vulnerable component is AgentLogLine, a React dashboard component within Coder's web frontend (pkg:go/github.com_coder_coder_v2). Coder employs the ansi-to-html npm library to convert ANSI terminal escape codes embedded in workspace agent log output into displayable HTML. The library exposes an escapeXML option (defaulting to false) that, when disabled, passes raw HTML metacharacters - including angle brackets and tag structures - through the conversion process unchanged. This converted output is then inserted into the DOM using React's dangerouslySetInnerHTML prop, bypassing React's default XSS protection. Server-side sanitization similarly failed to neutralize HTML metacharacters before log lines were stored or transmitted. The root cause class is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS): attacker-controlled content originating from a stored source (agent log lines) reaches an HTML rendering context without escaping, enabling persistent payload delivery to any user viewing the page.
RemediationAI
Upgrade to the patched version for your active release line: v2.34.2 (release line 2.34), v2.33.8 (release line 2.33), v2.32.7 (release line 2.32), or v2.29.17 (2.29 ESR). The fix enables escapeXML: true in the ansi-to-html invocation, causing HTML metacharacters in agent log output to be escaped before DOM insertion, neutralizing the injection vector. No official workarounds are documented by the vendor. As a temporary compensating control where immediate patching is not possible, restricting workspace creation permissions to fully trusted internal users eliminates the attacker-controlled log injection surface, though this constrains legitimate use of the platform. Deployments on unsupported release lines should be upgraded to a supported and patched line. Patch details and release notes are at https://github.com/coder/coder/security/advisories/GHSA-7qw2-f75v-62f7 and the fix PR is https://github.com/coder/coder/pull/25808.
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42150
GHSA-7qw2-f75v-62f7