CVE-2026-21873 Zero-click XSS in all NiceGUI apps which uses `ui.sub_pages`

High 7.2 Published Updated

Attackers can execute arbitrary JavaScript in NiceGUI applications via cross-site iframe manipulation of URL fragments.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-21873?

CVE-2026-21873 is a high-severity cross-site scripting vulnerability in zauberzeug nicegui, published on 8 Jan 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

NiceGUI is a Python-based UI framework. From versions 2.22.0 to 3.4.1, an unsafe implementation in the pushstate event listener used by ui.sub_pages allows an attacker to manipulate the fragment identifier of the URL, which they can do despite being cross-site, using an iframe. This issue has been patched in version 3.5.0.

Weakness: CWE-79

Which versions are affected by CVE-2026-21873?

3 open source packages ship an affected version, including nicegui. It affects 1 product.

PackageAffectedFixed in
nicegui PyPIFrom 2.22.03.5.0
nicegui PyPIFrom 2.22.03.5.0
nicegui PyPIFrom 2.22.03.5.0

Products include Zauberzeug Nicegui.

How do I fix CVE-2026-21873?

Upgrade nicegui to 3.5.0 or later.

Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.

Is CVE-2026-21873 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-21873 exists.

Sources

Also known as GHSA-mhpg-c27v-6mxr, PYSEC-2026-1702.

Is CVE-2026-21873 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free