Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious Auto3DSeg work directory
-
DeliveryDeliver as shared benchmark/bundle artifact
-
ExploitVictim loads via AutoRunner or import_bundle_algo_history
-
Executionalgo_from_json imports attacker _target_ module
-
ImpactArbitrary code execution as victim user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
|
| Exploitation Conditions | No special product configuration is required - the advisory confirms the code path runs under default configuration, with MONAI_ALLOW_PICKLE unset, unlike the gated .pkl branch. The concrete prerequisite is that the victim must load an attacker-controlled Auto3DSeg work directory containing a crafted algo_object.json (with an attacker-chosen _target_) and a sibling algorithm_templates module, by calling AutoRunner(work_dir) or import_bundle_algo_history(); a cache.yaml with algo_gen: true plus any loadable input.yaml suffices, with no dataset, dataroot, or .run() call needed. Limiting factors: the vector is local (AV:L) and depends on passive user interaction (UI:P) - the victim must obtain and open a malicious artifact - so exploitation requires supply-chain/social-engineering delivery rather than remote network access; no authentication is needed (PR:N). Affected versions are MONAI 1.6.0 (<=1.6.0rc1) before 1.6.1; the complete fix is upgrading to 1.6.1 as stated by the vendor. |
| Impact | Signals point to a credible but conditional threat rather than a mass-exploitation emergency. The CVSS 4.0 base score is 8.5 (High) with VC:H/VI:H/VA:H, and the GHSA advisory confirms arbitrary code execution reachable under default configuration (no MONAI_ALLOW_PICKLE required) at AutoRunner construction time. However, the CVSS 4.0 vector is AV:L/UI:P - this is NOT a network-reachable service bug: despite the description's phrase 'remote code execution,' the attack vector is local and requires the victim to load an attacker-supplied Auto3DSeg work directory, so 'remote' here means attacker-authored artifact (benchmark output, pretrained bundle, collaboration folder) rather than a remotely reachable listener. The GHSA advisory publishes a complete, functional PoC (a malicious algorithm_templates/evil.py plus algo_object.json), which materially raises practical risk. This is not in CISA KEV, so there is no evidence of active exploitation, and no EPSS score was supplied to gauge exploitation probability - treat the absence of KEV/EPSS as missing data, not as reassurance. The vuln.today decision label is 'this_week,' consistent with a high-impact, default-config, PoC-backed flaw that still depends on social-engineering/supply-chain delivery. Net: a genuine priority for MONAI/Auto3DSeg users who ingest shared work directories, but gated by the user-interaction/artifact-delivery requirement rather than wormable network exposure. |
| Exploit ScenarioDerived | An attacker publishes a shareable Auto3DSeg work directory - framed as a benchmark output, pretrained-algo bundle, or collaboration folder - containing a malicious algorithm_templates/evil.py and an algo_object.json whose _target_ points to the attacker's class. When a researcher loads it with AutoRunner(work_dir) or import_bundle_algo_history(), the class is imported and instantiated at construction time, silently running the attacker's code as the victim user. A complete working PoC is published in the GHSA advisory, and because the vector is local (AV:L) with passive user interaction (UI:P), exploitation hinges on getting the victim to open the crafted directory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Arbitrary code execution in MONAI's Auto3DSeg component (versions 1.6.0 through 1.6.0rc1) lets a crafted work directory run attacker Python as soon as a victim loads it with AutoRunner() or import_bundle_algo_history(). The loader trusts an untrusted algo_object.json, prepending an attacker-supplied algorithm_templates directory to sys.path and instantiating its _target_ dotted name through monai.bundle.ConfigParser - and the advisory confirms this path works under default configuration with MONAI_ALLOW_PICKLE unset, unlike the gated .pkl branch. Exploitation is local and interaction-dependent (the victim must obtain and open the malicious artifact) and no authentication is needed; the vendor advisory publishes a proof-of-concept work-directory layout, though independent verification of working exploit code was not performed, and there is no confirmed active exploitation (no CISA KEV listing) and no EPSS figure supplied.
RemediationAI
Vendor-released patch: upgrade MONAI to 1.6.1 or later (fixed in >= 1.6.1 per the GHSA-2wx3-8x3w-r8qv advisory at https://github.com/Project-MONAI/MONAI/security/advisories/GHSA-2wx3-8x3w-r8qv); the vendor presents upgrading as the complete fix. Because the flaw triggers specifically when a victim loads an attacker-controlled Auto3DSeg work directory through AutoRunner(work_dir) or import_bundle_algo_history(), the exposure window before upgrade is governed by artifact provenance: until 1.6.1 is deployed, treat incoming work directories, benchmark outputs, pretrained-algo bundles and collaboration folders as untrusted code and avoid loading them (inspect the algo_object.json _target_ value and any sibling algorithm_templates directory before calling the loaders), accepting that this is an operational control that depends on manual review rather than an enforced in-product restriction - note that MONAI_ALLOW_PICKLE being unset does not protect this path, since this is the separate, ungated JSON branch.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-470 (use of externally controlled name to select classes or code), a reflection/deserialization flaw in monai/auto3dseg/utils.py. algo_from_json() parses an untrusted algo_object.json and treats two JSON fields as trusted: '_target_' (a fully qualified Python name) and 'template_path' (a directory), and it additionally auto-discovers a sibling 'algorithm_templates' directory next to the JSON file. Any discovered path is inserted at the front of sys.path, then ConfigParser({'_target_': target}).get_parsed_content() reaches monai/utils/module.py, where pydoc.locate() imports the referenced module and component(**kwargs) runs its constructor - so a work directory shipping algorithm_templates/evil.py plus "_target_": "evil.Backdoor" executes on load. The sibling pickle branch is explicitly gated by _require_pickle_allowed() raising unless MONAI_ALLOW_PICKLE=1, which highlights that the JSON path lacks an equivalent guard. Reachability requires only a cache.yaml with algo_gen: true and any loadable input.yaml, since AutoRunner.__init__ calls read_cache() and then import_bundle_algo_history(work_dir, only_trained=False) before any dataset validation; no dataroot or .run() call is needed. The CPE cpe:2.3:a:project-monai:monai:*:*:*:*:*:*:*:* denotes the PyPI package monai.
Know when Monai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Attacker-supplied artifact loaded locally by the victim gives AV:L and UI:R; no auth needed (PR:N), low complexity, and full code execution yields C:H/I:H/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
MONAI from 1.6.0 before 1.6.1 contains a remote code execution vulnerability in Auto3DSeg algo_from_json() that allows attackers to run Python code via a crafted work directory's algo_object.json. Attackers can ship a malicious algorithm_templates module plus a _target_ name that is imported and instantiated when victims call AutoRunner or import_bundle_algo_history, executing code under default configuration.
Articles & Coverage 1
Technical POC Analysis
CWE-470 (Use of Externally-Controlled Input to Select Classes or Code / unsafe reflection), in monai/auto3dseg/utils.py::algofromjson().
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability in MONAI's Auto3DSeg component (CVSS 8.5) enables arbitrary code execution when a user loads a malicious work directory, potentially compromising research workstations or AI training pipelines. While exploitation requires local interaction and no active exploitation has been confirmed, the absence of a patch means organizations using MONAI for medical imaging AI must immediately assess exposure and enforce strict artifact provenance controls.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict use of Auto3DSeg to trusted work directories, manually inspect algo_object.json for suspicious algorithm_templates paths and _target_ entries, isolate affected systems, and monitor for vendor updates.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
MONAI (Medical Open Network for AI) is an AI toolkit for health care imaging. Rated high severity (CVSS 8.8), this vulne
MONAI (Medical Open Network for AI) is an AI toolkit for health care imaging. Rated high severity (CVSS 8.8), this vulne
MONAI versions up to 1.5.1 contain a path traversal vulnerability in the `_download_from_ngc_private()` function that fa
Deserialization of untrusted data in MONAI's auto3dseg utility (monai/auto3dseg/utils.py) allows arbitrary code executio
OS command injection in MONAI's nnUNetV2Runner (monai.apps.nnunet.nnunetv2_runner) allows arbitrary command execution wi
MONAI through 1.6.0 will execute arbitrary code in the victim's process when it loads an attacker-supplied bundle, becau
Deserialization of attacker-controlled pickle data in MONAI's Auto3DSeg module (monai/auto3dseg/utils.py) lets code run
Arbitrary code execution in MONAI versions prior to 1.6.0 occurs when a crafted .npy or .npz file is loaded through the
Local code execution in MONAI 1.6.0 and all released versions allows an authenticated low-privileged local attacker to r
Remote code execution in Project MONAI 0.4.0 through 1.6.0 requires an on-path attacker to tamper with SENet pretrained
MONAI through 1.6.0 lets a user who can supply or tamper with a bundle's metadata achieve code execution by abusing an e
Insecure deserialization in Project MONAI's nnUNetV2Runner (versions 1.2.0 up to but not including 1.6.1) lets an attack
EUVD-2026-113932
GHSA-rx25-w8hq-hr3g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB