Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain write access to results directory
-
DeliveryTamper inference_information.json postprocessing_file path
-
ExploitPlant malicious pickle on filesystem
-
ExecutionVictim runs predict_ensemble_postprocessing
-
ImpactUnpickle executes arbitrary code
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires (1) the attacker to have write access to the nnU-Net results/dataset directory so they can modify inference_information.json, (2) the ability to place a malicious Python pickle at a path they then reference via the postprocessing_file field, and (3) a legitimate operator to subsequently invoke predict_ensemble_postprocessing in nnUNetV2Runner (the UI:P passive-interaction requirement). Key LIMITING factors: the attack vector is LOCAL (AV:L) - no remote/network exploitation - and the attacker needs pre-existing low-privilege filesystem write access (PR:L), so this is only exploitable by users already present on the host or in multi-tenant/shared compute environments, not against default internet-facing deployments. In MONAI 1.6.1+ the path is confined to the dataset results directory and pickle loading is gated behind MONAI_ALLOW_PICKLE, further narrowing exploitability post-patch. |
| Impact | This is a locally-scoped, low-severity-to-moderate priority issue rather than a mass-exploitation threat. The authoritative CVSS 4.0 vector (CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H, score 7.0) tells a consistent story with the description: exploitation is LOCAL (AV:L), requires some privileges (PR:L - the attacker must already be able to write inference_information.json on the target filesystem), and requires passive user interaction (UI:P - a legitimate operator must run predict_ensemble_postprocessing). Impact is full code execution (VC:H/VI:H/VA:H) with no scope change to other systems (SC:N/SI:N/SA:N). No EPSS score, no CISA KEV listing, and no public POC were provided in the intelligence; exploitation status is therefore 'no public exploit identified at time of analysis.' The absence of EPSS/KEV signals combined with the local attack vector and prerequisite write access strongly indicates this is NOT a widespread, internet-facing threat but a privilege-dependent, supply-chain/trust-boundary flaw. The real-world risk concentrates in multi-user research/compute environments where one user's write access to another's results directory becomes a code-execution pivot. A patch is confirmed available from the vendor, which should be the primary mitigation. |
| Exploit ScenarioDerived | In a shared medical-imaging compute environment, an attacker who can write to another user's nnU-Net results directory edits inference_information.json so its postprocessing_file field points to an attacker-planted malicious pickle elsewhere on the filesystem. When the victim operator subsequently runs predict_ensemble_postprocessing in nnUNetV2Runner, MONAI unpickles the attacker-controlled file and executes arbitrary code in the victim's context. No public exploit code was identified in the provided intelligence, but the mechanism is straightforward given write access. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Insecure deserialization in Project MONAI's nnUNetV2Runner (versions 1.2.0 up to but not including 1.6.1) lets an attacker who can write to a nnU-Net results directory tamper with inference_information.json and redirect the postprocessing_file field to a malicious Python pickle anywhere on the filesystem, which is then unpickled when predict_ensemble_postprocessing runs, giving arbitrary code execution in the MONAI process. Exploitation is local and requires pre-existing low-privilege filesystem write access plus a legitimate operator subsequently invoking the runner (passive user interaction), so it is a shared-host/multi-tenant concern rather than an internet-facing remote threat; no public exploit code has been identified at time of analysis and the issue is not in CISA KEV. The path-confinement fix and a pickle opt-in gate (MONAI_ALLOW_PICKLE) are available from the vendor as of MONAI 1.6.1, with an associated upstream commit.
RemediationAI
Upgrade to MONAI 1.6.1 or later; the vendor advisory is at https://github.com/Project-MONAI/MONAI/security/advisories/GHSA-8f32-8649-rv87 and the fix commit is https://github.com/Project-MONAI/MONAI/commit/08576205c4de3c214976294d1dec8f7b2e78cdb9, which adds path confinement of postprocessing_file and some_plans_file to the dataset results directory and starts gating pickle loading behind MONAIEnvVars.allow_pickle(). Note that in patched releases the confinement only limits path redirection: because the loader's warning still states that anyone able to write inside the results directory can supply a malicious pickle, you must also enforce filesystem integrity on the results directory - restrict write permissions to the pipeline/service account, avoid running nnU-Net results preparation as a shared or multi-tenant user, and treat inference_information.json as untrusted input (never copy an untrusted results directory onto a host that will run predict_ensemble_postprocessing). As a hardening or interim compensating control, keep pickle loading disabled by leaving MONAI_ALLOW_PICKLE unset (allow_pickle defaults to False), and set it to 1 only when postprocessing genuinely requires pickle; the trade-off is that after MONAI 1.7 the nnU-Net postprocessing load will fail unless MONAI_ALLOW_PICKLE=1 is set, so plan that opt-in deliberately. Where pickle-based postprocessing is not essential, prefer workflows that avoid pickle artifacts entirely, and monitor for re-application of patches that predate commit 08576205, since the vulnerable code path only triggers when the operator invokes predict_ensemble_postprocessing.
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-502 (Deserialization of Untrusted Data). MONAI's nnUNetV2Runner wraps nnU-Net inference and, in predict_ensemble_postprocessing, reads the best_configuration dictionary that originates from the plain-JSON file inference_information.json inside the nnU-Net results directory. Fields such as postprocessing_file (and some_plans_file) were passed straight to MONAI's pickle-based loader without validating that the referenced file actually lived inside the dataset results directory. Because JSON content is fully attacker-controlled by anyone who can write that file, the path could be pointed at an attacker-planted pickle elsewhere (for example /tmp/attacker_controlled_postprocessing.pkl, as used in the upstream regression test), and unpickling it executes arbitrary Python in the context of the process running the ensemble postprocessing step. The upstream fix commit 08576205c4de3c214976294d1dec8f7b2e78cdb9 adds a _confine_to_dir() helper that resolves the candidate and the allowed results root with os.path.realpath and rejects any value whose os.path.commonpath escapes the results directory, raising ValueError; it also begins gating nnU-Net postprocessing pickle loading behind the MONAIEnvVars.allow_pickle() setting (environment variable MONAI_ALLOW_PICKLE, default False), emitting a FutureWarning that pickle loading will require MONAI_ALLOW_PICKLE=1 from MONAI 1.7 onward. The CPE cpe:2.3:a:project-monai:monai:*:*:*:*:*:*:*:* is a wildcard covering the MONAI package; per the advisory, affected releases are 1.2.0 through the versions preceding 1.6.1. The assessed severity is a local, low-to-moderate priority issue: AV:L with PR:L and UI:R means no network vector, but confidentiality, integrity, and availability impacts are all High because successful unpickling yields full code execution as the MONAI process user.
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:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Local exploitation requires prior write access to the results directory (PR:L) and an operator to run the postprocessing pipeline (UI:R); successful pickle execution yields full host compromise (C:H/I:H/A:H) with no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
MONAI 1.2.0 before 1.6.1 contains an insecure deserialization vulnerability in nnUNetV2Runner that unpickles the postprocessing_file path read from inference_information.json without confining it to the results directory. Attackers who can modify inference_information.json can point it at a malicious pickle elsewhere on the filesystem to execute code when predict_ensemble_postprocessing runs.
Technical POC Analysis
CWE-502 (Deserialization of Untrusted Data).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Project MONAI's nnUNetV2Runner versions 1.2.0 through 1.6.0 are vulnerable to insecure deserialization, enabling a local attacker with write access to a results directory to achieve arbitrary code execution when an operator runs predict_ensemble_postprocessing. This shared-host/multi-tenant risk affects organizations running MONAI-based medical imaging pipelines, where a low-privilege user could compromise model integrity or exfiltrate sensitive data. Leadership should prioritize patching to MONAI 1.6.1, as no public exploit code is currently identified.
Apply vendor patch.
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
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
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
MONAI (Medical Open Network for AI) is an AI toolkit for health care imaging. Rated high severity (CVSS 8.8), this vulne
EUVD-2026-97663
GHSA-7hmf-j253-4p2j
NVD
CVE.org
EPSS
Exploit-DB