Skip to content
Heist/ feed
Back to feed
Critical

EPyT-Flow has unsafe JSON deserialization (__type__)

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-25632
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 13:41 UTC · Revision 1

Source evidence

EPyT-Flow has unsafe JSON deserialization (__type__)

core-osv · Original source

Published 6 Feb 2026, 20:24 UTC

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.

osv:CVE-2026-25632
Complete source record
{
  "id": "d0474d694efeb86b6eb21cb0252558be288ea016485c32b02d83a59acb1d612f",
  "url": "https://osv.dev/vulnerability/CVE-2026-25632",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "EPyT-Flow has unsafe JSON deserialization (__type__)",
    "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.",
    "evidence": "osv:CVE-2026-25632",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-25632",
      "aliases": [
        "CVE-2026-25632",
        "GHSA-74vm-8frp-7w68",
        "PYSEC-2026-330"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/waterfutures/epyt-flow",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "af8507dc7560e4c8275085149bccd779bda2526f"
                },
                {
                  "fixed": "3fff9151494c7dbc72073830b734f0a7e550e385"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:waterfutures:epyt-flow:*:*:*:*:*:python:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.16.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "3fff9151494c7dbc72073830b734f0a7e550e385"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "af8507dc7560e4c8275085149bccd779bda2526f"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v0.16.1"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.15.0",
            "v0.14.2",
            "v0.14.1",
            "v0.8.0",
            "v0.7.3",
            "v0.7.2",
            "v0.7.1",
            "v0.7.0",
            "v0.6.0",
            "v0.5.0",
            "v0.4.0",
            "v0.3.0",
            "v0.2.0",
            "v0.1.1",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-25632.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:35.879722194Z",
      "provider": "osv",
      "references": [
        "https://github.com/WaterFutures/EPyT-Flow/releases/tag/v0.16.1",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25632.json",
        "https://github.com/WaterFutures/EPyT-Flow/security/advisories/GHSA-74vm-8frp-7w68",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-25632",
        "https://github.com/WaterFutures/EPyT-Flow/commit/3fff9151494c7dbc72073830b734f0a7e550e385"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-502"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25632.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-25632",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 503223,
  "published_at": "2026-02-06T20:24:18.213+00:00"
}