Cloudanix VulnDB

CVE-2026-21871

Medium · 6.1

NiceGUI is vulnerable to XSS via Unescaped URL in ui.navigate.history.push() / replace()

CVSS

6.1

EPSS

0.3%

Published

Jan 8, 2026

CISA due date

—

The record

XSS risk exists in NiceGUI when developers pass attacker-controlled strings into `ui.navigate.history.push()` or `ui.navigate.history.replace()`. These helpers are documented as History API wrappers for updating the browser URL without page reload. However, if the URL argument is embedded into generated JavaScript without proper escaping, a crafted payload can break out of the intended string context and execute arbitrary JavaScript in the victim’s browser. **Applications that do not pass untrusted input into `ui.navigate.history.push/replace` are not affected.**

Affected packages

Ecosystem Package Introduced Fixed
PyPI nicegui 2.13.0 3.5.0
pypi nicegui 2.13.0 No fix

Related vulnerabilities