Safeguard
Vulnerability Analysis•

CVE-2026-100846: High Pickle Deserialization RCE in MONAI

CVE-2026-100846 is unsafe pickle loading in MONAI algo_from_pickle. Upgrade to 1.5.2 and never load pickle files from sources you do not trust.

Safeguard Security Team
3 min read

CVE-2026-100846 is a High (CVSS 7.6) deserialization flaw in MONAI before 1.5.2. The algo_from_pickle function loads a pickle file without validating it, so a crafted file can run code in your application. Upgrade to 1.5.2 or later and avoid untrusted pickles.

What's affected

The weakness is CWE-502 (deserialization of untrusted data). The record says MONAI before 1.5.2 is affected, and the GitHub advisory says versions up to and including 1.5.1 are affected with 1.5.2 as the patched version. Both sources agree on the High rating and 7.6 score.

The function algo_from_pickle in the auto3dseg utilities reads a pickle file and passes its contents to pickle.loads with no check on where the data came from or what it contains. Python pickle can rebuild arbitrary objects, including ones that run code during loading. If an application calls the function on a file an attacker supplied, the attacker's code runs with the application's rights.

The risk depends on how you use the function. A pipeline that only loads pickles that it wrote itself is much less exposed than a service that accepts uploaded files.

How to check if you're exposed

Check the version.

pip show monai

Below 1.5.2 means update. Then search your code for the function and for other pickle loads.

grep -rn "algo_from_pickle\|pickle.load" your_project/

For each hit, ask where the file comes from. Files in a protected directory written by your own jobs are one thing. Files from a shared bucket, an upload form or a downloaded model package are another.

This is also a good place to use reachability analysis. An installed package with a vulnerable function matters far more if your code calls that function than if it never does, and Safeguard reachability analysis is designed to separate those cases.

The free in-browser dependency scan at gold.safeguard.sh/scan can match a lockfile or manifest against known CVEs without installing anything. The Gold directory page for each CVE lists affected packages and fixes as they are published.

What to do now

  1. Upgrade MONAI to 1.5.2 or later.
  2. Find every call to algo_from_pickle in your code and trace where its input file comes from.
  3. Do not load pickle files from untrusted sources. Prefer data formats that cannot carry code.
  4. Restrict write access to directories that hold files your jobs will later unpickle.
  5. Run model training and inference under limited accounts so that a bad load does not reach secrets.

Why it matters

Pickle is a serialization format that doubles as a code execution format. Python documentation warns against loading pickle data from untrusted sources, and this flaw is a direct instance of that warning. The library function did not add any gate of its own.

Machine learning projects pass pickle files around constantly, between steps of a pipeline and between teams. That habit is the real exposure. The record does not mark the CVE as known exploited.

Try it yourself

Click through it at your own pace, or open it full screen.

Quick check

Is 1.5.2 definitely the fixed version?

Yes by the sources we reviewed. The record says before 1.5.2 and the GitHub advisory lists 1.5.2 as patched.

Does upgrading remove the need to be careful with pickle?

No. Pickle remains unsafe for untrusted data in general. Keep untrusted files out of any pickle load.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.