Vulnerability DatabaseGHSA-m47w-xwfc-82pf

GHSA-m47w-xwfc-82pf: 
Python vulnerability analysis and mitigation

Summary

ui.aggrid and ui.echart evaluate option keys that start with a colon (:) as JavaScript expressions in the browser, a documented feature for passing functions like formatters or renderers. The conversion walked through the whole options object, including the row data of a grid and the dataset of a chart. A key that comes from data rather than from the application's code was therefore executed as JavaScript as well. ui.aggrid.from_pandas() and ui.aggrid.from_polars() use the column names of a DataFrame as such keys, so a column named :x caused its cell values to run as JavaScript in the browser of every user who views the grid.

Impact

Applications that display data with keys controlled by users are affected, most prominently those that render uploaded CSV or Excel files or other user-provided DataFrames with ui.aggrid.from_pandas() or ui.aggrid.from_polars(). The same applies to row data passed to ui.aggrid directly, including updates through run_grid_method() and run_row_method(), and to dataset.source of ui.echart, as long as the keys of the records come from user input. An attacker who can supply such data can execute JavaScript in the browser of other users who view it, within the application's origin, and act in their session. Applications whose data keys are defined by the application itself are not affected. Values are not evaluated, only keys starting with a colon.

Patches

Fixed in NiceGUI 3.19.0. Colon-prefixed keys are no longer evaluated inside the row data of ui.aggrid, including row data passed through grid and row methods, and inside dataset.source of ui.echart. Options outside the data keep working as documented. Upgrade to 3.19.0 or later.

Workarounds

If upgrading is not immediately possible, sanitize the keys of user-provided data before passing it to ui.aggrid or ui.echart, e.g. by renaming DataFrame columns that start with a colon: df.rename(columns=lambda c: str(c).lstrip(':')).


Source: NVD

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-9g7v-h3pr-4qm8MEDIUM6.1
  • Python logoPython
  • nicegui
NoYesNov 02, 2026
GHSA-m47w-xwfc-82pfMEDIUM6.1
  • Python logoPython
  • nicegui
NoYesNov 02, 2026
GHSA-75w7-4mx9-8qqcMEDIUM5.9
  • Python logoPython
  • nicegui
NoYesNov 02, 2026
CVE-2026-119301MEDIUM5
  • Python logoPython
  • awswrangler
NoYesNov 02, 2026
GHSA-7325-hqrm-gj35MEDIUMN/A
  • Python logoPython
  • cbor2
NoNoNov 02, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management