What’s Vulnerable › Vulnerabilities
CVE-2026-25516: NiceGUI's XSS vulnerability in ui.markdown() allows arbitrary JavaScript execution through unsanitized HTML content
- Severity: medium (CVSS 6.1 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: yes
- Published: 2026-02-06 · updated 2026-06-17
- Weakness: CWE-79
Description
NiceGUI is a Python-based UI framework. The ui.markdown() component uses the markdown2 library to convert markdown content to HTML, which is then rendered via innerHTML. By default, markdown2 allows raw HTML to pass through unchanged. This means that if an application renders user-controlled content through ui.markdown(), an attacker can inject malicious HTML containing JavaScript event handlers. Unlike other NiceGUI components that render HTML (ui.html(), ui.chat_message(), ui.interactive_image()), the ui.markdown() component does not provide or require a sanitize parameter, leaving applications vulnerable to XSS attacks. This vulnerability is fixed in 3.7.0.
Affected products
- zauberzeug nicegui: before 3.7.0 — fixed in 3.7.0
How to fix
Upgrade to a fixed version: zauberzeug nicegui 3.7.0. Check the vendor advisory for mitigations.
References
- https://github.com/zauberzeug/nicegui/commit/f1f7533577875af7d23f161ed3627f73584cb561
- https://github.com/zauberzeug/nicegui/security/advisories/GHSA-v82v-c5x8-w282
Get alerted when CVE-2026-25516 or the next vulnerability affects your stack