CVE-2026-55244
ASTEVAL: Sandbox Escape via BaseException Subclasses
- State
- Published
- Severity
- 5.0 Medium
- Published
- Sep 14, 2026
- Updated
- Sep 16, 2026
- Reserved
- Jun 16, 2026
Description
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.
Scores
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 3.1 | 5.0 Medium | CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H | GitHub_M |
Weaknesses
- CWE-248 Uncaught Exception
Affected Products
| Product | Versions |
|---|---|
astevallmfit |
|
References
- 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
Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.