PyMoDAQ before 5.3.10 Arbitrary Code Execution via Crafted HDF5, Dock Layout, and XML Settings Files
PyMoDAQ and its pymodaq_data, pymodaq_gui and pymodaq_utils packages before 5.3.10 can run code from a crafted .h5, .dock, or XML settings file. Fixed in 5.3.10 and 5.2.14.
Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.
- Exploited
- No known exploitation
- Fix
- Fixed in PyMoDAQ 4.4.13 · pymodaq_data 5.1.15, 5.2.14, 5.3.10 · pymodaq_gui 5.1.15, 5.2.14, 5.3.10 · pymodaq_utils 5.1.15, 5.2.14, 5.3.10
- Who is exposed
- Specific setups only
Do first: Check whether your setup matches what the bug needs. PyMoDAQ versions before 5.3.10 (and the corresponding pymodaq_data, pymodaq_gui and pymodaq_utils packages before their patched releases) A user must open a specially crafted file (.h5, .dock, or XML settings file)
- Last modified
- A 0-100 score for how much a CVE matters across the industry: exploitation, exposure, how widely the software is used, severity and whether a fix exists.What do these mean? →
- 14/100 · provisional
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
PyMoDAQ, a Python framework for controlling scientific instruments and processing their data, can be made to run arbitrary code when a user opens a crafted HDF5, .dock layout, or XML settings file. An attacker with local access and no login can exploit this, but a user must first open the malicious file.
Read the original 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.
cve.now Index
- Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
- Exposure5/25Specific setups only
- Reach?/20Unknown. No tracked technology or package matched
- Severity8.5/10CVSS 8.5
- No patch0/5No signal
What would change the score
- Would score about 64 if added to CISA KEV
- Would score about 59 if CISA's SSVC rates exploitation active
- Would score about 24 if CISA's SSVC rates it automatable
What to do
Check whether your setup matches what the bug needs.
PyMoDAQ versions before 5.3.10 (and the corresponding pymodaq_data, pymodaq_gui and pymodaq_utils packages before their patched releases) A user must open a specially crafted file (.h5, .dock, or XML settings file)Upgrade to a fixed version: PyMoDAQ 4.4.13 · pymodaq_data 5.1.15, 5.2.14, 5.3.10 · pymodaq_gui 5.1.15, 5.2.14, 5.3.10 · pymodaq_utils 5.1.15, 5.2.14, 5.3.10.
Workaround: Do not open .h5, .dock, preset or settings files from untrusted sources.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- PyMoDAQ PyMoDAQ
fixed in 4.4.13
- PyMoDAQ pymodaq_data
fixed in 5.1.15; From 5.2.0 · fixed in 5.2.14; From 5.3.0 · fixed in 5.3.10
- PyMoDAQ pymodaq_gui
fixed in 5.1.15; From 5.2.0 · fixed in 5.2.14; From 5.3.0 · fixed in 5.3.10
- PyMoDAQ pymodaq_utils
fixed in 5.1.15; From 5.2.0 · fixed in 5.2.14; From 5.3.0 · fixed in 5.3.10
Evidence 11
- Advisory
- Patch
- Patch
- Patch
- Patch
Show all 11 sourcesShow fewer sources
- Repository
- Repository
- Repository
- Repository
- Repository
- Link
Corrections
None so far.
Something wrong on this page? Report an error. Every fix is listed here.
Questions about CVE-2026-120859
Is CVE-2026-120859 being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data
What does this mean?
Opening a specially crafted .h5, .dock, or XML settings file can run arbitrary code on the machine running PyMoDAQ, with the privileges of the user running it.Source: vulncheck.com, github.com
Which versions are affected by CVE-2026-120859?
PyMoDAQ: before 4.4.13. pymodaq_data: before 5.1.15; from 5.2.0 before 5.2.14; from 5.3.0 before 5.3.10. pymodaq_gui: before 5.1.15; from 5.2.0 before 5.2.14; from 5.3.0 before 5.3.10. pymodaq_utils: before 5.1.15; from 5.2.0 before 5.2.14; from 5.3.0 before 5.3.10.Source: cve.now feed data
Am I affected, and how do I check?
PyMoDAQ versions before 4.4.13, and pymodaq_data, pymodaq_gui and pymodaq_utils versions before 5.1.15, from 5.2.0 before 5.2.14, and from 5.3.0 before 5.3.10. To check an installed version, run pip show pymodaq or pip list and compare the pymodaq_data, pymodaq_gui and pymodaq_utils versions against these ranges.Source: vulncheck.com, github.com
How do I fix CVE-2026-120859?
Upgrade to 5.3.10 or 5.2.14, or to the patched release for the branch in use. Until the upgrade is done, do not open .h5, .dock, preset or settings files from untrusted sources.Source: vulncheck.com, github.com