Skip to main content

MONAI CVE-2026-109361

| EUVDEUVD-2026-97663 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-10-12 VulnCheck GHSA-7hmf-j253-4p2j
7.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain write access to results directory
  2. Delivery
    Tamper inference_information.json postprocessing_file path
  3. Exploit
    Plant malicious pickle on filesystem
  4. Execution
    Victim runs predict_ensemble_postprocessing
  5. Impact
    Unpickle 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

MONAI 1.2.0 <1.6.1

Affected Packages

euvd monai fix: 1.6.1

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

Vendor (VulnCheck) PRIMARY 7.0 HIGH
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
vuln.today AI 7.3 HIGH

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.

3.1 AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular open-source medical-imaging deep-learning framework, research-centric footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

More in Monai

View all
CVE-2025-58756 HIGH POC
8.8 Sep 09

MONAI (Medical Open Network for AI) is an AI toolkit for health care imaging. Rated high severity (CVSS 8.8), this vulne

CVE-2025-58755 HIGH POC
8.8 Sep 09

MONAI (Medical Open Network for AI) is an AI toolkit for health care imaging. Rated high severity (CVSS 8.8), this vulne

CVE-2026-21851 MEDIUM POC
5.3 Jan 07

MONAI versions up to 1.5.1 contain a path traversal vulnerability in the `_download_from_ngc_private()` function that fa

CVE-2026-100846 HIGH
8.8 Sep 27

Deserialization of untrusted data in MONAI's auto3dseg utility (monai/auto3dseg/utils.py) allows arbitrary code executio

CVE-2026-100844 HIGH
8.6 Sep 27

OS command injection in MONAI's nnUNetV2Runner (monai.apps.nnunet.nnunetv2_runner) allows arbitrary command execution wi

CVE-2026-100840 HIGH
8.5 Sep 27

MONAI through 1.6.0 will execute arbitrary code in the victim's process when it loads an attacker-supplied bundle, becau

CVE-2026-100843 HIGH
8.5 Sep 27

Deserialization of attacker-controlled pickle data in MONAI's Auto3DSeg module (monai/auto3dseg/utils.py) lets code run

CVE-2026-100845 HIGH
8.5 Sep 27

Arbitrary code execution in MONAI versions prior to 1.6.0 occurs when a crafted .npy or .npz file is loaded through the

CVE-2026-100841 HIGH
8.5 Sep 27

Local code execution in MONAI 1.6.0 and all released versions allows an authenticated low-privileged local attacker to r

CVE-2026-109360 HIGH
7.7 Oct 12

Remote code execution in Project MONAI 0.4.0 through 1.6.0 requires an on-path attacker to tamper with SENet pretrained

CVE-2026-100842 HIGH
7.3 Sep 27

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

CVE-2025-58757 HIGH POC
8.8 Sep 09

MONAI (Medical Open Network for AI) is an AI toolkit for health care imaging. Rated high severity (CVSS 8.8), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy