CVE-2025-54413: skops: RCE via MethodNode unsafe deserialization
GHSA-4v6w-xpmh-gfgp HIGH PoC AVAILABLE CISA: ATTENDAny ML pipeline loading skops model files from external or shared sources is exposed to arbitrary code execution at load time. Upgrade to skops 0.12.0 immediately and audit all locations where `.skops` files are ingested. This is a supply chain vector — a malicious model file on HuggingFace or an internal registry is sufficient to compromise the loading environment.
Risk Assessment
High risk for organizations running scikit-learn-based ML pipelines. The vulnerability requires an attacker to deliver a crafted skops model file to a victim who loads it — achievable via supply chain (HuggingFace Hub, S3 buckets, artifact registries) or social engineering. EPSS is currently low, reflecting recency, not real-world risk. The fix is available and the patch delta is concrete, making exploitability moderate-to-low only because the attack surface is limited to skops users. However, for affected environments, the impact is full code execution with the privileges of the loading process.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| skops | pip | < 0.12.0 | 0.12.0 |
Do you use skops? You're affected.
Severity & Risk
Recommended Action
6 steps-
Patch immediately
Upgrade skops to 0.12.0 (
pip install --upgrade skops). -
Audit ingestion points
Identify all locations in your pipelines where
.skopsfiles are loaded — CI/CD, inference servers, training workers, notebooks. -
Verify model provenance
Implement cryptographic signing or hash verification for model artifacts before loading.
-
Restrict load sources
Only allow skops files from internal, controlled registries — block loading from arbitrary URLs or unauthenticated paths.
-
Sandbox model loading
Consider loading untrusted models in isolated environments (containers, VMs) with no network access and minimal privileges.
-
Detection
Alert on
skops.io.loadcalls in production environments processing externally sourced files; monitor for unexpected process spawning from ML inference workers.
CISA SSVC Assessment
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2025-54413?
Any ML pipeline loading skops model files from external or shared sources is exposed to arbitrary code execution at load time. Upgrade to skops 0.12.0 immediately and audit all locations where `.skops` files are ingested. This is a supply chain vector — a malicious model file on HuggingFace or an internal registry is sufficient to compromise the loading environment.
Is CVE-2025-54413 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2025-54413, increasing the risk of exploitation.
How to fix CVE-2025-54413?
1. **Patch immediately**: Upgrade skops to 0.12.0 (`pip install --upgrade skops`). 2. **Audit ingestion points**: Identify all locations in your pipelines where `.skops` files are loaded — CI/CD, inference servers, training workers, notebooks. 3. **Verify model provenance**: Implement cryptographic signing or hash verification for model artifacts before loading. 4. **Restrict load sources**: Only allow skops files from internal, controlled registries — block loading from arbitrary URLs or unauthenticated paths. 5. **Sandbox model loading**: Consider loading untrusted models in isolated environments (containers, VMs) with no network access and minimal privileges. 6. **Detection**: Alert on `skops.io.load` calls in production environments processing externally sourced files; monitor for unexpected process spawning from ML inference workers.
What systems are affected by CVE-2025-54413?
This vulnerability affects the following AI/ML architecture patterns: model serving, training pipelines, MLOps/CI-CD pipelines, model registries, data science notebooks.
What is the CVSS score for CVE-2025-54413?
No CVSS score has been assigned yet.
Technical Details
NVD Description
skops is a Python library which helps users share and ship their scikit-learn based models. Versions 0.11.0 and below contain an inconsistency in MethodNode, which can be exploited to access unexpected object fields through dot notation. This can be used to achieve arbitrary code execution at load time. While this issue may seem similar to GHSA-m7f4-hrc6-fwg3, it is actually more severe, as it relies on fewer assumptions about trusted types. This is fixed in version 12.0.0.
Exploitation Scenario
An adversary identifies a target organization using skops for sharing scikit-learn models internally or consuming models from HuggingFace. The adversary crafts a malicious `.skops` model file by abusing the MethodNode inconsistency — using dot notation to traverse unexpected object fields, ultimately triggering arbitrary code execution when the file is deserialized. The attacker uploads the poisoned model to a public HuggingFace repository with a convincing name and README (e.g., a fine-tuned sentiment analysis model for a popular dataset). A data scientist or automated pipeline loads the model, executing attacker-controlled code with the privileges of the loading process. In a CI/CD context, this can lead to secrets exfiltration, lateral movement, or persistent backdoors in ML infrastructure.
Weaknesses (CWE)
References
- github.com/advisories/GHSA-4v6w-xpmh-gfgp
- github.com/io-no/CVE-Reports/tree/main/CVE-2025-54413
- nvd.nist.gov/vuln/detail/CVE-2025-54413
- drive.google.com/drive/folders/1bmVV18mnPbWy21hVYgf51yVJpf78vtB_
- github.com/skops-dev/skops/commit/0aeca055509dfb48c1506870aabdd9e247adf603
- github.com/skops-dev/skops/releases/tag/v0.12.0
- github.com/skops-dev/skops/security/advisories/GHSA-4v6w-xpmh-gfgp
- github.com/skops-dev/skops/security/advisories/GHSA-m7f4-hrc6-fwg3
Timeline
Related Vulnerabilities
CVE-2025-54886 8.4 skops: joblib fallback enables RCE via model load
Same package: skops CVE-2025-54412 skops: OperatorFuncNode type confusion → RCE
Same package: skops CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same attack type: Supply Chain CVE-2025-5120 10.0 smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Supply Chain CVE-2025-59528 10.0 Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Supply Chain
AI Threat Alert