Description
A vulnerability was detected in yzhao062 pyod up to 3.6.1. Affected is the function pyod.utils.persistence.load of the file pyod/utils/persistence.py. Performing a manipulation of the argument path results in deserialization. The attack can be initiated remotely. Upgrading to version 3.6.2 is able to address this issue. It is recommended to apply a patch to fix this issue. The pull request to fix this issue requires some minor changes.
Published: 2026-07-13
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The pyod library contains a persistence.load function that deserializes objects from a file path specified by the caller. In versions up to 3.6.1, an attacker can manipulate the path argument so that the library deserializes arbitrary data. Because the code performs no validation of the path or the file contents, a crafted payload can include objects that trigger code execution or other unintended behavior. This flaw corresponds to CWE‑20 (Improper Input Validation) and CWE‑502 (Deserialization of Untrusted Data). The CVE states the attack can be initiated remotely, implying an external actor can trigger the vulnerability without local access.

Affected Systems

The issue affects deployments of the open‑source pyod package maintained by yzhao062 that use pyod version 3.6.1 or earlier and that invoke pyod.utils.persistence.load with a path that can be controlled by external users. The problem is mitigated in pyod version 3.6.2, so any environment running that or newer version is no longer vulnerable.

Risk and Exploitability

The technical severity is moderate, with a CVSS base score of 5.3. The EPSS score is lower than 1 %, indicating a low probability of exploitation observed in the wild. The vulnerability is not listed in the CISA KEV catalog. Because the flaw is reachable remotely by supplying a crafted path argument, an attacker could trigger arbitrary deserialization within the process that calls the function, potentially leading to unauthorized data processing or code execution. The scope is limited to the application that uses pyod, but the lack of input validation makes it theoretically possible to compromise the entire application.

Generated by OpenCVE AI on July 31, 2026 at 12:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pyod to version 3.6.2 or later.
  • If an upgrade cannot be performed immediately, apply the changes from the pull request that adds input validation, or otherwise ensure that the path argument can only reference trusted local files.
  • Restrict external network exposure to components that invoke pyod.utils.persistence.load, such as by firewall or application segmentation, to reduce the window for a remote attacker to craft a malicious path.

Generated by OpenCVE AI on July 31, 2026 at 12:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 20 Jul 2026 07:15:00 +0000

Type Values Removed Values Added
Description A vulnerability was detected in yzhao062 pyod 3.5.0/3.5.1/3.5.2. Affected is the function pyod.utils.persistence.load of the file pyod/utils/persistence.py. Performing a manipulation of the argument path results in deserialization. The attack can be initiated remotely. The pull request to fix this issue requires some minor changes. A vulnerability was detected in yzhao062 pyod up to 3.6.1. Affected is the function pyod.utils.persistence.load of the file pyod/utils/persistence.py. Performing a manipulation of the argument path results in deserialization. The attack can be initiated remotely. Upgrading to version 3.6.2 is able to address this issue. It is recommended to apply a patch to fix this issue. The pull request to fix this issue requires some minor changes.
References
Metrics cvssV2_0

{'score': 6.5, 'vector': 'AV:N/AC:L/Au:S/C:P/I:P/A:P/E:ND/RL:ND/RC:UR'}

cvssV3_0

{'score': 6.3, 'vector': 'CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:X/RL:X/RC:R'}

cvssV3_1

{'score': 6.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:X/RL:X/RC:R'}

cvssV2_0

{'score': 6.5, 'vector': 'AV:N/AC:L/Au:S/C:P/I:P/A:P/E:ND/RL:OF/RC:C'}

cvssV3_0

{'score': 6.3, 'vector': 'CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:X/RL:O/RC:C'}

cvssV3_1

{'score': 6.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:X/RL:O/RC:C'}


Wed, 15 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 13 Jul 2026 04:00:00 +0000

Type Values Removed Values Added
Description A vulnerability was detected in yzhao062 pyod 3.5.0/3.5.1/3.5.2. Affected is the function pyod.utils.persistence.load of the file pyod/utils/persistence.py. Performing a manipulation of the argument path results in deserialization. The attack can be initiated remotely. The pull request to fix this issue requires some minor changes.
Title yzhao062 pyod persistence.py pyod.utils.persistence.load deserialization
First Time appeared Yzhao062
Yzhao062 pyod
Weaknesses CWE-20
CWE-502
CPEs cpe:2.3:a:yzhao062:pyod:*:*:*:*:*:*:*:*
Vendors & Products Yzhao062
Yzhao062 pyod
References
Metrics cvssV2_0

{'score': 6.5, 'vector': 'AV:N/AC:L/Au:S/C:P/I:P/A:P/E:ND/RL:ND/RC:UR'}

cvssV3_0

{'score': 6.3, 'vector': 'CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:X/RL:X/RC:R'}

cvssV3_1

{'score': 6.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:X/RL:X/RC:R'}

cvssV4_0

{'score': 5.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulDB

Published:

Updated: 2026-07-20T06:19:33.417Z

Reserved: 2026-07-12T15:47:24.318Z

Link: CVE-2026-15529

cve-icon Vulnrichment

Updated: 2026-07-14T14:52:55.509Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T12:30:16Z

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-502

    Deserialization of Untrusted Data