CVE-2026-100841: MONAI through 1.6.0 PersistentDataset Remote Code Execution via Pickle Cache
Noroxi assessment
Priority: Monitor (action score 34/100)
- The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.12% (FIRST EPSS).
- Someone with local access to the system can trigger it. A low-privileged account is enough. No user action is required. No special conditions are required; it is repeatable.
- According to the record, no fixed version is available yet.
Low priority for now. Update when a fix is released; follow the vendor's advisory.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
In MONAI 1.6.0, PersistentDataset (monai/data/dataset.py) explicitly rejects the combination track_meta=True with weights_only=True, forcing users who cache MetaTensors (the default tensor type in MONAI >= 1.0) to run torch.load(hashfile, weights_only=False). Related cache helpers in monai/data/utils.py also call pickle.loads on cached content and derive cache keys with hashlib.md5. As a result, a local user with write access to a shared or world-writable cache_dir (e.g. /tmp/monai_cache, HPC scratch, ~/.cache/monai) can place a malicious pickle file that is deserialized the next time another user's MONAI pipeline reads the cache, resulting in arbitrary code execution in that user's context. All released versions of the monai pip package are affected; no patched version is available as of the advisory.
- Published
- Sep 27, 2026
- Updated
- Sep 30, 2026
- EPSS
- 0.1% · 2th percentile
- CWE
- CWE-502
Report tools
Action score
34
Low priority for now.
- CVSS
- 34 / 40 · 8.5 / 10
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.1%
CISA SSVC decision
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
Vulnrichment: CISA's decision-tree inputs.
CNA vs NVD score
- NVD
- —
- CNA · VulnCheck
- 8.5
- NVD has not scored this yet; the score shown is the CNA’s.
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- No public exploit code on record
- No fixed version yet
If any of these changes, we'll tell you in the daily email digest.
Is your version affected? Check itNoroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
| Vendor | Product | CPE |
|---|---|---|
| project-monai | monai | cpe:2.3:a:project-monai:monai |
Versions reported by the vendor
Affected version ranges reported by the assigning authority (VulnCheck). Independent of NVD's CPE analysis and usually ahead of it.
Project-MONAI MONAI
- up to and including 1.6.0affected · semver
Affected versions
NVD version ranges (for catalog products). Add the product to your stack with a version and matching uses these.
- project-monai monai1.6.0
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| PyPI | monai | up to and including 1.6.0-NA | — |
Same product
project-monai: all recordsOther highest-scoring records for the same primary product.
- CVE-2026-48705MONAI: MONAILabel Server Crash and Silent Inference Corruption via Crafted DICOM (pydicom DS/IS Validation Bypass)37Monitor
- CVE-2026-100846MONAI before 1.5.2 Remote Code Execution via Pickle Deserialization35Monitor
- CVE-2026-119578MONAI 1.6.0 before 1.6.1 Code Execution via Auto3DSeg algo_from_json()34Monitor
Published before and after this one in the same product
- ← EarlierCVE-2026-21851Jan 7, 2026 · MONAI has Path Traversal (Zip Slip) in NGC Private Bundle Download21Monitor
- ← EarlierCVE-2026-100840Sep 27, 2026 · MONAI through 1.6.0 Remote Code Execution via bundle configuration34Monitor
- Later →CVE-2026-100842Sep 27, 2026 · MONAI through 1.6.0 _get_fake_spatial_shape eval() Sandbox Bypass via Attribute Chains29Monitor
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
No fix version is recorded for this entry. Check the references for vendor advisories.
Exploit status
No known public exploit
No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
No dated events beyond publication.
FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).
Variant candidates
Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.
- CVE-2026-1008460 days apartMONAI before 1.5.2 Remote Code Execution via Pickle Deserialization35Monitor
- CVE-2026-1008430 days apartMONAI before 1.6.0 Remote Code Execution via algo_from_pickle34Monitor
- CVE-2026-1008450 days apartMONAI before 1.6.0 Remote Code Execution via NumpyReader34Monitor
- CVE-2026-10936015 days apartMONAI 0.4.0 before 1.6.1 RCE via SENet Pretrained Weights Over Plaintext HTTP30Monitor
- CVE-2026-10936115 days apartMONAI 1.2.0 before 1.6.1 Insecure Deserialization RCE via nnUNetV2Runner postprocessing_file Path28Monitor
Not on record for this CVE: patch commit or PR link · researcher credit · public bounty program.
Technical details
Attack conditions
- Someone with local access to the system can trigger it.
- A low-privileged account is enough.
- No user action is required.
- No special conditions are required; it is repeatable.
If successful
- Confidentiality
- Integrity
- Availability
- Attack vector
- Local
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- X
Weakness class (CWE)
CWE-502 · Deserialization of Untrusted DataCVSS vector
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
nvd-secondary
Root cause
Data received over the network is deserialized into the language’s native object format without verifying its source. Code paths inside the object can be triggered during deserialization.
The bug in code
The whole CWE-502 classA representative example of this vulnerability class. Not the vendor's source code; it shows the faulty pattern and its fix.
Vulnerable
payload = sock.recv(65536)
job = pickle.loads(payload)Fixed
payload = sock.recv(65536)
if not hmac.compare_digest(sign(payload), header_sig):
raise PermissionError("invalid signature")
job = JobSchema.validate(json.loads(payload))Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
Attack patterns (CAPEC)
ATT&CK techniques
—
Change log (1)
- SSVC exploitation— → none
For records you follow, these changes also arrive as notifications. →
References
Show all references (1 more)Show less
Vendor advisories and official records. Exploit/PoC links are deliberately left out.