CVE-2026-120859

Description

A flaw was found in PyMoDAQ. An attacker can achieve arbitrary code execution by convincing a user to open a maliciously crafted file, such as a data, dock layout, or XML configuration file. This issue occurs because the application unsafely deserializes untrusted objects and evaluates embedded code during file parsing. Successful exploitation allows an attacker to run arbitrary commands with the privileges of the victim user.

Statement

This vulnerability is rated as an Important severity flaw because an attacker who convinces a user to load a compromised file can execute arbitrary code with the user's privileges, though exploitation requires user interaction rather than occurring over a network without consent. PyMoDAQ and its related packages are not distributed or supported in Red Hat Enterprise Linux or other Red Hat products. As a result, standard Red Hat enterprise deployments are not vulnerable to this issue.

Mitigation

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

--- CME Mitigation Guidance (2026-11-06) ---
Disclaimer: The following mitigation solutions are provided as a courtesy, pending the application of an official patch. This content was generated utilizing AI tools in conjunction with data from https://cmetaxonomy.org. Customers are advised to independently evaluate and test these temporary mitigations within their own infrastructure.

The highest-value action is to eliminate unsafe pickle deserialization and dynamic eval execution during data, layout, and configuration file parsing in PyMoDAQ tooling: upgrade to PyMoDAQ 4.4.13+, pymodaq_* 5.1.15+, 5.2.14+, 5.3.10+, which replace eval with AST-based evaluation and safe literal parsing, switch serialization to JSON and UTF-8, and enforce a restricted unpickler for legacy pickle data, closing all 4 injection vectors (crafted HDF5 string array nodes with pickled objects, crafted HDF5 attributes containing Python expressions, crafted .dock layout files, crafted XML configuration files or mathematical expressions). Until patched, this is a concern on Workstations and environments running PyMoDAQ where users load untrusted data, layout, or configuration files, so Prevent opening untrusted or external HDF5 data files, .dock layout files, and XML configuration files, and restrict file placement in working directories. As a compensating measure, Enforce strict allowlist validation on parsed file fields to reject unexpected object types and dynamic expressions, Enable SELinux in enforcing mode to confine the PyMoDAQ process and bound unauthorized system access, Deploy an EDR agent to detect and terminate anomalous processes spawned via deserialization or eval payloads, and Use Falco or eBPF runtime security to detect anomalous child processes or unexpected shell spawns from the PyMoDAQ process. These controls limit blast radius and contain exploitation, but they do not fix the underlying unsafe deserialization and eval injection defect — apply the upstream patch to fully remediate.

Highest-impact CME: CME-1302 Deserialization Allowlist (Safe Loading) (high)

Understanding the Weakness (CWE)

Integrity

Technical Impact: Modify Application Data; Unexpected State

Attackers can modify unexpected objects or data that was assumed to be safe from modification. Deserialized data or code could be modified without using the provided accessor functions, or unexpected functions could be invoked.

Availability

Technical Impact: DoS: Resource Consumption (CPU)

If a function is making an assumption on when to terminate, based on a sentry in a string, it could easily never terminate.

Other

Technical Impact: Varies by Context

The consequences can vary widely, because it depends on which objects or methods are being deserialized, and how they are used. Making an assumption that the code in the deserialized object is valid is dangerous and can enable exploitation. One example is attackers using gadget chains to perform unauthorized actions, such as generating a shell.

Frequently Asked Questions

Want to get errata notifications? Sign up here.