CVE-2026-47103 Python StateMachine 3.0.0 < 3.2.0 RCE via SCXML eval() Injection
Attackers can execute arbitrary code by providing malicious SCXML documents to the Python StateMachine library due to unsafe eval() usage.
- 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-47103?
CVE-2026-47103 is a critical code injection vulnerability in fgmacedo python-statemachine, published on 17 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Python StateMachine versions 3.0.0 before 3.2.0 contains a remote code execution vulnerability that allows attackers to execute arbitrary code by supplying malicious SCXML documents containing crafted `<data expr="...">` attributes evaluated unsafely. The SCXMLProcessor passes attacker-controlled expression strings through a call chain ending in Python's built-in eval() without sandboxing, enabling arbitrary code execution in the context of the hosting process.
Which versions are affected by CVE-2026-47103?
3 open source packages ship an affected version, including python-statemachine. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
python-statemachine PyPI | From 3.0.0 | 3.2.0 |
python-statemachine PyPI | From 3.0.0 | 3.2.0 |
python-statemachine PyPI | From 3.0.0 | 3.2.0 |
Products include Fgmacedo Python Statemachine.
How do I fix CVE-2026-47103?
Upgrade python-statemachine to 3.2.0 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-47103 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-47103 exists.
Public exploit code: 1 proofs of concept on GitHub.
Sources
Also known as GHSA-v4jc-pm6r-3vj8, PYSEC-2026-506.