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.
Published: 2026-02-06
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Cross‑Site Scripting that allows arbitrary JavaScript execution
Action: Patch
AI Analysis

Impact

NiceGUI’s ui.markdown() component converts Markdown to HTML with markdown2, which permits raw HTML to pass through unchanged. When an application renders user‑controlled content via ui.markdown(), an attacker can embed malicious HTML containing JavaScript event handlers. The resulting vulnerability is a classic XSS flaw (CWE‑79) that lets attackers execute arbitrary code in the victim’s browser, potentially stealing data or hijacking sessions.

Affected Systems

The flaw exists in all versions of the NiceGUI Python UI framework released before the 3.7.0 update. Any deployment that accepts or displays Markdown input via ui.markdown() is affected.

Risk and Exploitability

The CVSS score of 6.1 indicates a moderate severity. EPSS shows a probability of exploitation below 1 %, suggesting attacks are not yet common, and the vulnerability is not listed in the CISA KEV catalog. Attackers can exploit this vector by providing malicious Markdown content through any user‑input channel that the application forwards to ui.markdown(). The described attack surface is inferred from the fact that user input is passed directly to the component; no additional privileges or network access are required.

Generated by OpenCVE AI on April 17, 2026 at 22:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade NiceGUI to version 3.7.0 or later, which removes the raw‑HTML handling in ui.markdown().
  • If an upgrade is not immediately possible, ensure that any user input sent to ui.markdown() is first sanitized to strip or encode raw HTML tags before rendering.
  • Apply a restrictive Content Security Policy that disallows inline scripts and event handlers to mitigate the impact of any remaining XSS payloads.

Generated by OpenCVE AI on April 17, 2026 at 22:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-v82v-c5x8-w282 NiceGUI's XSS vulnerability in ui.markdown() allows arbitrary JavaScript execution through unsanitized HTML content
History

Fri, 20 Feb 2026 15:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:zauberzeug:nicegui:*:*:*:*:*:*:*:*

Mon, 09 Feb 2026 16:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 09 Feb 2026 11:00:00 +0000

Type Values Removed Values Added
First Time appeared Zauberzeug
Zauberzeug nicegui
Vendors & Products Zauberzeug
Zauberzeug nicegui

Fri, 06 Feb 2026 21:30:00 +0000

Type Values Removed Values Added
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.
Title NiceGUI's XSS vulnerability in ui.markdown() allows arbitrary JavaScript execution through unsanitized HTML content
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


Subscriptions

Zauberzeug Nicegui
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-02-09T15:27:15.351Z

Reserved: 2026-02-02T18:21:42.487Z

Link: CVE-2026-25516

cve-icon Vulnrichment

Updated: 2026-02-09T15:19:21.745Z

cve-icon NVD

Status : Analyzed

Published: 2026-02-06T22:16:11.300

Modified: 2026-02-20T15:43:23.177

Link: CVE-2026-25516

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-17T22:30:29Z

Weaknesses