CVE-2025-54412: skops: OperatorFuncNode type confusion → RCE
GHSA-m7f4-hrc6-fwg3 HIGH PoC AVAILABLE CISA: ATTENDAny team loading scikit-learn models from untrusted or third-party sources via skops is exposed to arbitrary code execution through a crafted model file. The attack specifically undermines skops' own trusted_types security mechanism via code reuse, making it harder to catch with static analysis. Upgrade to skops 0.12.0 immediately and restrict model loading to internally-signed artifacts.
Risk Assessment
High risk for ML pipelines that accept skops-formatted models from external sources—model registries, Hugging Face Hub, or cross-team sharing workflows. The vulnerability is particularly impactful because it bypasses the primary security control skops introduced to avoid pickle-style deserialization attacks. EPSS is currently minimal (0.00012), suggesting no active exploitation, but PoC context exists in the published advisory and the technical barrier is moderate for anyone familiar with skops internals.
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
Patch available
Update skops to version 0.12.0
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-54412?
Any team loading scikit-learn models from untrusted or third-party sources via skops is exposed to arbitrary code execution through a crafted model file. The attack specifically undermines skops' own trusted_types security mechanism via code reuse, making it harder to catch with static analysis. Upgrade to skops 0.12.0 immediately and restrict model loading to internally-signed artifacts.
Is CVE-2025-54412 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2025-54412, increasing the risk of exploitation.
How to fix CVE-2025-54412?
Update to patched version: skops 0.12.0.
What systems are affected by CVE-2025-54412?
This vulnerability affects the following AI/ML architecture patterns: model serving, training pipelines, model registries, MLOps CI/CD pipelines.
What is the CVSS score for CVE-2025-54412?
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 a inconsistency in the OperatorFuncNode which can be exploited to hide the execution of untrusted operator methods. This can then be used in a code reuse attack to invoke seemingly safe functions and escalate to arbitrary code execution with minimal and misleading trusted types. This is fixed in version 0.12.0.
Exploitation Scenario
An adversary crafts a malicious .skops model file exploiting the OperatorFuncNode inconsistency to chain 'trusted' operator calls in a code reuse sequence that invokes untrusted methods. The file is published to a shared model hub, distributed via a data science collaboration platform, or submitted as a model contribution in an open ML project. When a data scientist or automated pipeline calls skops.io.load(malicious_model.skops, trusted_types=[...]), the hidden operator execution fires under the appearance of safe, trusted operations. In an MLOps context, this achieves RCE on training infrastructure, can exfiltrate cloud credentials from instance metadata, or pivot to connected data stores and pipelines.
Weaknesses (CWE)
References
- drive.google.com/file/d/1c2KrjayE_S1siaou0vDmGK7_MQ7_YCUZ/view
- github.com/advisories/GHSA-m7f4-hrc6-fwg3
- github.com/io-no/CVE-Reports/tree/main/CVE-2025-54412
- nvd.nist.gov/vuln/detail/CVE-2025-54412
- 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-m7f4-hrc6-fwg3
- github.com/Jasonyu77/ai-vuln-analysis Exploit
- github.com/necst/security-model-sharing Exploit
Timeline
Related Vulnerabilities
CVE-2025-54886 8.4 skops: joblib fallback enables RCE via model load
Same package: skops CVE-2025-54413 skops: RCE via MethodNode unsafe deserialization
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