{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "0"
                  },
                  {
                    "fixed": "4.4.13"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StandardRange"
              },
              {
                "range": [
                  {
                    "introduced": "0"
                  },
                  {
                    "fixed": "5.1.15"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StandardRange"
              },
              {
                "range": [
                  {
                    "introduced": "5.2.0"
                  },
                  {
                    "fixed": "5.2.14"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StandardRange"
              },
              {
                "range": [
                  {
                    "introduced": "5.3.0"
                  },
                  {
                    "fixed": "5.3.10"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StandardRange"
              },
              {
                "range": [
                  {
                    "fixed": "6c7fff74d82624c640bd79513f5b4675ea6d88da"
                  }
                ],
                "source": "REFERENCES_COMMIT"
              },
              {
                "range": [
                  {
                    "fixed": "3bf9042a58f5d4870a2b45fe2c9423aafe6b9203"
                  }
                ],
                "source": "REFERENCES_COMMIT"
              },
              {
                "range": [
                  {
                    "fixed": "ae0042513eb979c84da690825902658c625718d1"
                  }
                ],
                "source": "REFERENCES_COMMIT"
              },
              {
                "range": [
                  {
                    "fixed": "041e8a22b3dbe3c986ec0ea3c6b46a22f5efe374"
                  }
                ],
                "source": "REFERENCES_COMMIT"
              },
              {
                "original_tag": "5.3.10",
                "range": [
                  {
                    "fixed": "c5833a4e509c01e0c17b2284984c620d08195574"
                  }
                ],
                "source": "REFERENCES_TAG"
              },
              {
                "original_tag": "5.2.14",
                "range": [
                  {
                    "fixed": "308bffe5265e4b2a6f446e890063cf60f320081a"
                  }
                ],
                "source": "REFERENCES_TAG"
              },
              {
                "original_tag": "5.1.15",
                "range": [
                  {
                    "fixed": "57811413dfe6c1a6befe14296799077ee7942a1a"
                  }
                ],
                "source": "REFERENCES_TAG"
              },
              {
                "original_tag": "4.4.13",
                "range": [
                  {
                    "fixed": "24e220c2b4bb1fa2b40bdeec37a062ae75c3e9ac"
                  }
                ],
                "source": "REFERENCES_TAG"
              }
            ]
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "24e220c2b4bb1fa2b40bdeec37a062ae75c3e9ac"
            },
            {
              "fixed": "57811413dfe6c1a6befe14296799077ee7942a1a"
            },
            {
              "introduced": "6dac73eca473368e043a26e85e0061824298aa26"
            },
            {
              "fixed": "308bffe5265e4b2a6f446e890063cf60f320081a"
            },
            {
              "introduced": "5f22406d19d00acd30462c0d17e1e5173bde1636"
            },
            {
              "fixed": "c5833a4e509c01e0c17b2284984c620d08195574"
            },
            {
              "fixed": "6c7fff74d82624c640bd79513f5b4675ea6d88da"
            },
            {
              "fixed": "3bf9042a58f5d4870a2b45fe2c9423aafe6b9203"
            },
            {
              "fixed": "ae0042513eb979c84da690825902658c625718d1"
            },
            {
              "fixed": "041e8a22b3dbe3c986ec0ea3c6b46a22f5efe374"
            }
          ],
          "repo": "https://github.com/pymodaq/pymodaq",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-jw9g-5c9x-cf84"
  ],
  "database_specific": {
    "cna_assigner": "VulnCheck",
    "cwe_ids": [
      "CWE-502",
      "CWE-95"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120859.json"
  },
  "details": "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.",
  "id": "CVE-2026-120859",
  "modified": "2026-11-05T21:16:01.564749082Z",
  "published": "2026-11-05T17:14:58.101Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120859.json"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ"
    },
    {
      "type": "ARTICLE",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/blob/5.3.9/packages/pymodaq_data/src/pymodaq_data/h5modules/backends.py#L477-L478"
    },
    {
      "type": "FIX",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/commit/041e8a22b3dbe3c986ec0ea3c6b46a22f5efe374"
    },
    {
      "type": "FIX",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/commit/3bf9042a58f5d4870a2b45fe2c9423aafe6b9203"
    },
    {
      "type": "FIX",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/commit/6c7fff74d82624c640bd79513f5b4675ea6d88da"
    },
    {
      "type": "FIX",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/commit/ae0042513eb979c84da690825902658c625718d1"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/releases/tag/4.4.13"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/releases/tag/5.1.15"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/releases/tag/5.2.14"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/releases/tag/5.3.10"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/PyMoDAQ/PyMoDAQ/security/advisories/GHSA-jw9g-5c9x-cf84"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-120859"
    },
    {
      "type": "ADVISORY",
      "url": "https://www.vulncheck.com/advisories/pymodaq-before-5.3.10-arbitrary-code-execution-via-crafted-hdf5-dock-layout-and-xml-settings-files"
    }
  ],
  "schema_version": "1.9.2",
  "severity": [
    {
      "score": "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",
      "type": "CVSS_V4"
    }
  ],
  "summary": "PyMoDAQ before 5.3.10 Arbitrary Code Execution via Crafted HDF5, Dock Layout, and XML Settings Files"
}