Description
PyMoDAQ before 4.4.13, and pymodaq_data, pymodaq_gui, and pymodaq_utils before 5.1.15, 5.2.x before 5.2.14, and 5.3.x before 5.3.10, contain deserialization of untrusted data and eval injection vulnerabilities that allow attackers to execute arbitrary code by supplying crafted files that a user opens. Attackers can store pickled objects in HDF5 string nodes that StringARRAY.array_to_string() passes to pickle.loads() when the node is browsed or read, place Python expressions in HDF5 attributes that JsonConverter.json2object() evaluates, supply a .dock file that load_layout_state() unpickles from the Dashboard Load layout action, or embed Python expressions in XML settings files that elt_to_dict() and set_txt_from_elt() evaluate.
Published: 2026-11-05
Score: 8.5 High
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

PyMoDAQ and its component modules allow attackers to execute arbitrary code by delivering specially crafted files that trigger unsafe deserialization and eval operations. Deserialization of pickled objects in HDF5 string nodes, evaluation of Python expressions in HDF5 attributes, loading of .dock layout files, and evaluation of Python code embedded in XML settings files expose the application to arbitrary code execution. The weakness is classified as CWE-502 (Deserialization of Untrusted Data) and CWE-95 (Eval Injection). An attacker who can supply such files, or trick a user into loading them, can run any code on the host system, compromising confidentiality, integrity, and availability.

Affected Systems

PyMoDAQ packages and its dependencies—including PyMoDAQ, pymodaq_data, pymodaq_gui, and pymodaq_utils—are affected. Versions prior to 4.4.13, before 5.1.15, 5.2.x before 5.2.14, and 5.3.x before 5.3.10 contain the vulnerability. Users running any of these versions are at risk until updated.

Risk and Exploitability

The CVSS score of 8.5 indicates high severity. No EPSS score is available, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector requires an attacker to deliver malicious HDF5, .dock, or XML settings files that an authenticated or local user opens. Once a file is processed, the exploitation bypasses authentication and runs code with the privileges of the application user. The high impact combined with the requirement for file access makes it a significant risk for installations that accept or process user-supplied files.

Generated by OpenCVE AI on November 5, 2026 at 19:29 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade all installed PyMoDAQ packages to the latest releases (PyMoDAQ ≥ 5.3.10, pymodaq_data ≥ 5.2.14, pymodaq_gui ≥ 5.1.15, and pymodaq_utils ≥ 5.3.10).
  • Audit and remove any existing HDF5, .dock, or XML settings files that may contain malicious or untrusted content before the upgrade.
  • Limit or validate file loading in the application to prevent automatic processing of untrusted files, and consider disabling the automatic opening of .dock and XML settings files until a secure solution is in place.

Generated by OpenCVE AI on November 5, 2026 at 19:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 05 Nov 2026 17:30:00 +0000

Type Values Removed Values Added
Description PyMoDAQ before 4.4.13, and pymodaq_data, pymodaq_gui, and pymodaq_utils before 5.1.15, 5.2.x before 5.2.14, and 5.3.x before 5.3.10, contain deserialization of untrusted data and eval injection vulnerabilities that allow attackers to execute arbitrary code by supplying crafted files that a user opens. Attackers can store pickled objects in HDF5 string nodes that StringARRAY.array_to_string() passes to pickle.loads() when the node is browsed or read, place Python expressions in HDF5 attributes that JsonConverter.json2object() evaluates, supply a .dock file that load_layout_state() unpickles from the Dashboard Load layout action, or embed Python expressions in XML settings files that elt_to_dict() and set_txt_from_elt() evaluate.
Title PyMoDAQ before 5.3.10 Arbitrary Code Execution via Crafted HDF5, Dock Layout, and XML Settings Files
Weaknesses CWE-502
CWE-95
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.5, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-11-05T17:14:58.101Z

Reserved: 2026-11-03T00:37:48.051Z

Link: CVE-2026-120859

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-05T18:17:05.323

Modified: 2026-11-05T18:17:05.323

Link: CVE-2026-120859

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-05T19:30:11Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data

  • CWE-95

    Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')