CVE-2026-25632 json
EPyT-Flow has unsafe JSON deserialization (__type__)
published 2026-02-04 9 mo ago modified 2026-10-27 12 d ago also GHSA-74vm-8frp-7w68 , PYSEC-2026-330 , EUVD-2026-5576
- cvss
- 10.0
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 56%
- public exploits
- 0
- none known
Summary
EPyT-Flow is a Python package designed for the easy generation of hydraulic and water quality scenario data of water distribution networks. Prior to 0.16.1, EPyT-Flow’s REST API parses attacker-controlled JSON request bodies using a custom deserializer (my_load_from_json) that supports a type field. When type is present, the deserializer dynamically imports an attacker-specified module/class and instantiates it with attacker-supplied arguments. This allows invoking dangerous classes such as subprocess.Popen, which can lead to OS command execution during JSON parsing. This also affects the loading of JSON files. This vulnerability is fixed in 0.16.1.
Patch / fix
- pypi epyt-flow 0.16.1
- waterfutures epyt-flow 0.16.1
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- total
- Assessed
- 9 mo ago
Exploit prediction
0.80% chance of exploitation in the next 30 days, higher than 56% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| OSV | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | epyt-flow | <0.16.1 |
0.16.1 |
Affected products
- WaterFutures EPyT-Flow
Classification
- Weakness
-
- CWE-502 Deserialization of Untrusted Data
References
-
github.com
/WaterFutures/EPyT-Flow/commit/3fff9151494c7dbc72073830b734f0a7e550e385
web, patch
-
github.com
/WaterFutures/EPyT-Flow/security/advisories/GHSA-74vm-8frp-7w68
web, vendor-advisory
-
github.com
/WaterFutures/EPyT-Flow/releases/tag/v0.16.1
web, product, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2026-25632
advisory
-
github.com
/WaterFutures/EPyT-Flow
package
-
github.com
/pypa/advisory-database/tree/main/vulns/epyt-flow/PYSEC-2026-330.yaml
web
-
pypi.org
/project/epyt-flow
web, package
-
github.com
/advisories/GHSA-74vm-8frp-7w68
advisory
Sources
- CVE List CVE-2026-25632
- GitHub Advisory GHSA-74vm-8frp-7w68
- NVD CVE-2026-25632
- OSV PYSEC-2026-330
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.