Skip to main content
← Vulnerabilities

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.

8.5HighCNA
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)

Published
Last modified
14/100 · provisional
Specific setups only
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

14Pcve.now Index 14 of 100 · methodology v3 · provisional
  • 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

  1. CVE published
  2. 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

  1. Advisory
  2. Patch
  3. Patch
  4. Patch
  5. Patch
Show all 11 sourcesShow fewer sources
  1. Repository
  2. Repository
  3. Repository
  4. Repository
  5. Repository
  6. 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