ASTEVAL: Sandbox Escape via BaseException Subclasses
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-248.
Summary
ASTEVAL is an evaluator of Python expressions and statements. Prior to 1.0.9, FROM_PY in asteval/astutils.py exposes BaseException, SystemExit, KeyboardInterrupt, and GeneratorExit to expressions evaluated by asteval.Interpreter.eval(), while run() and eval() in asteval/asteval.py catch Exception rather than these non-Exception BaseException subclasses. When an attacker-controlled expression raises one of these classes, on_raise() passes the class to raise_exception(), and the resulting exception bypasses the interpreter's safety handlers and propagates into the calling application. A consuming service that evaluates untrusted expressions can therefore be terminated or have signal and cleanup handling disrupted, causing denial of service. The separately documented read-only open() capability is not part of this vulnerability. This issue is fixed in version 1.0.9.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| lmfit | asteval | before 1.0.9 | 1.0.9 | Patch available | CNA |
| — | asteval (PyPI) | before 1.0.9 | 1.0.9 | Patch available | GHSA-89v8-rhwq-hf77 |
- asteval Vendorlmfit Affected before 1.0.9 Fixed in 1.0.9 Patch available CNA
- asteval (PyPI) Vendor— Affected before 1.0.9 Fixed in 1.0.9 Patch available GHSA-89v8-rhwq-hf77
Remediation
- Fix · CNA asteval (lmfit) Fixed in 1.0.9
- Fix · GHSA-89v8-rhwq-hf77 asteval (PyPI) Fixed in 1.0.9 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-55244
- 2026-10-03 Alias added: GHSA-89v8-rhwq-hf77
References
Other 7
- https://github.com/lmfit/asteval/security/advisories/GHSA-89v8-rhwq-hf77
- https://github.com/lmfit/asteval/pull/153
- https://github.com/lmfit/asteval/commit/9c625b3674f8d05f206708bb85afca17a87694a4
- https://github.com/lmfit/asteval/commit/c49c99a67acb63eb7410231932250bd820380e45
- https://github.com/lmfit/asteval/releases/tag/1.0.9
- https://github.com/lmfit/asteval/commit/a3e56e7f8ed567a4817684d94213b290359077b4
- https://github.com/lmfit/asteval
More lmfit vulnerabilities
- TI-2025-18102 ASTEVAL Vulnerable to Maliciously Crafted Format Strings Leading to Sandbox Escape CVSS 3.1HIGH 8.4
- TI-2026-71827 Sandbox escape in asteval allows arbitrary process memory access CVSS 3.1MEDIUM 5.5
Sources
- CVE-2026-55244 · CVE Program
- CVE-2026-55244 · NVD
- FIRST EPSS
- GHSA-89v8-rhwq-hf77 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences