RCE Gadgets

RCE gadgets cause the victim process to execute attacker-provided code. The attacker writes a string at a runtime location whose value the application’s own code later passes to subprocess, an import hook, or a shell.

Standard library

Library Trigger Polluted property
webbrowser webbrowser.open os.environ['BROWSER']
antigravity import antigravity (calls webbrowser.open on import) os.environ['BROWSER']
subprocess subprocess.run(..., shell=True) os.environ['COMSPEC']

Third-party packages

Library Trigger Polluted property
taipy.gui - Gui.__SELF_VAR

Real-world cases

Application Polluted property Mechanism CVE
django-unicorn os.environ['BROWSER'] plus location_cache._Cache__data.todo WebSocket message via set_property_value CVE-2025-24370
Azure CLI os.environ['COMSPEC'] --set flag via set_properties CVE-2025-24049
Taipy Gui.__SELF_VAR HTTP/SocketIO via _attrsetter CVE-2025-30374