Sceawere

Vulnerability Detail

CVE-2026-120859UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

PyMoDAQ Arbitrary Code Execution Vulnerabilities

Vulnerability Metadata

Severity
High
Score / CVSS
7.8
Creation Date
2d ago
Vendor
PyMoDAQ
Product
PyMoDAQ
Attack Type
Deserialization of Untrusted Data
Vector String
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack Complexity
LOW

Narrative and Response

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.

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "7.8",
  "pubDate": "2026-11-05T18:17:05.323Z",
  "pubdate": "2026-11-05T18:17:05.323Z",
  "executiveSummary": "PyMoDAQ and its associated packages (pymodaq_data, pymodaq_gui, pymodaq_utils) contain multiple critical vulnerabilities related to insecure deserialization and arbitrary code injection. These flaws allow an attacker to achieve remote code execution by providing a user with a specially crafted file—such as an HDF5 file, a .dock layout file, or an XML configuration file—that the application subsequently processes. The vulnerabilities stem from the unsafe use of pickle, eval(), and other evaluation functions on untrusted input data. Successful exploitation enables an attacker to execute arbitrary Python code within the context of the user running the application, potentially leading to full system compromise, data theft, or local persistence. The risk is elevated as these files are common formats for data exchange in PyMoDAQ, and exploitation requires only that the target user opens or interacts with the malicious file. All users are strongly advised to update to the patched versions immediately to remediate these security gaps.",
  "technicalDetails": "The identified vulnerabilities in PyMoDAQ stem from multiple instances of insecure data processing and evaluation patterns that fail to sanitize untrusted input. The root cause across these vectors is the trust placed in external file formats and the subsequent application of dangerous deserialization or evaluation routines.\n1. Insecure Deserialization via Pickle: The StringARRAY.array_to_string() function processes HDF5 string nodes in a way that passes content directly to pickle.loads(). By embedding serialized Python objects into HDF5 string nodes, an attacker can trigger arbitrary code execution simply by compelling a user to browse or read an infected HDF5 file.\n2. Arbitrary Code Injection via JsonConverter: The JsonConverter.json2object() method evaluates HDF5 attributes containing Python expressions. An attacker can inject malicious code into these attributes, which the library evaluates during the object conversion process, leading to code execution with the privileges of the host process.\n3. Dashboard Layout Hijacking: The load_layout_state() function used in the Dashboard load layout feature performs unpickling on .dock files. An attacker can craft a malicious .dock file containing serialized payloads that execute upon being loaded by the application.\n4. XML Settings Evaluation: The elt_to_dict() and set_txt_from_elt() functions process XML settings files by evaluating embedded Python expressions. By manipulating the XML structure of these configuration files, an attacker can force the application to execute arbitrary logic during the settings parsing phase.\nAttack Flow: An attacker distributes a weaponized file (HDF5, .dock, or XML) to a target user. Upon the user opening the file or performing a specific action (e.g., loading a layout or browsing data nodes), the application triggers the vulnerable function. The payload is then processed by either pickle.loads() or a Python evaluation function (eval), resulting in arbitrary code execution. This does not require prior authentication or elevated privileges, as the execution occurs within the user's current session context."
}
CVE-2026-120859: PyMoDAQ Arbitrary Code Execution Vulnerabilities (HIGH Severity, CVSS: 7.8) | Sceawere