Skip to main content

Hugging Face smolagents CVE-2025-14931

CRITICAL
Deserialization of Untrusted Data (CWE-502)
2025-12-23 zdi-disclosures@trendmicro.com
10.0
CVSS 3.0 · Vendor: trendmicro
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed smolagents remote executor
  2. Delivery
    Submit crafted pickle payload
  3. Exploit
    Trigger unsafe deserialization (CWE-502)
  4. Execution
    Execute arbitrary code as service account
  5. Impact
    Full compromise of host context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target deploys and exposes Hugging Face smolagents' remote Python executor such that attacker-controlled data reaches the pickle parsing/deserialization path; the specific flaw is unsafe deserialization of untrusted pickle data (CWE-502) with no validation of user-supplied input. Per the CVSS vector (AV:N/AC:L/PR:N/UI:N) no authentication or user interaction is needed once that path is reachable, so the primary limiting factor is network reachability of the vulnerable executor endpoint and whether the deployment feeds untrusted/externally-sourced data into deserialization - deployments that do not expose the remote executor to untrusted input are not exploitable. Impact is bounded by the privileges of the service account running smolagents.

Impact

All severity signals point to maximum technical severity: the CVSS 3.0 base score is 10.0 with AV:N/AC:L/PR:N/UI:N and full C:H/I:H/A:H plus a scope change (S:C), meaning an unauthenticated, remote, low-complexity attacker can achieve arbitrary code execution - consistent with the CWE-502 (deserialization of untrusted data / pickle) root cause described. However, the exploitation-likelihood signals are far more muted and partially conflicting with the 'critical' headline: EPSS is only 1.09% (65th percentile), there is no CISA KEV listing, and no public POC is referenced in the provided data, so this is best characterized as a high-impact but not-yet-widely-exploited issue. The vulnerability was reported through Trend Micro's Zero Day Initiative (ZDI-25-1143 / ZDI-CAN-28312), which indicates a coordinated-disclosure research finding rather than observed in-the-wild abuse. The practical risk is therefore highly deployment-dependent: because pickle-based RCE is trivially weaponizable once input reaches the vulnerable deserialization path, the gating factor is exposure of the smolagents remote Python executor to untrusted input, not attack difficulty. Note the signal tension explicitly: CVSS indicates trivial network exploitation while EPSS/KEV indicate no confirmed mass exploitation, suggesting the real-world risk is concentrated in environments that actually expose smolagents' remote executor to untrusted data rather than being broadly opportunistic.

Exploit ScenarioDerived

An attacker who can reach a smolagents deployment that uses the remote Python executor submits a crafted pickle payload to the deserialization path; because the data is not validated, unpickling instantiates attacker-controlled objects that execute arbitrary code in the context of the service account. No authentication or user interaction is required (PR:N/UI:N), and the low attack complexity (AC:L) means a single crafted request suffices. No public exploit code is identified at time of analysis, but pickle-deserialization flaws are trivially weaponizable.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 1.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

Unsafe pickle deserialization in Hugging Face smolagents' remote Python executor allows remote, unauthenticated attackers to execute arbitrary code in the context of the service account running the library (CVSS 10.0 with scope change). Exploitation is conditional: the deployment must expose the remote Python executor such that attacker-controlled data reaches the pickle parsing path, but once that path is reachable the CVSS vector (AV:N/AC:L/PR:N/UI:N) indicates no credentials or user interaction are needed. No public exploit code identified at time of analysis and EPSS is modest at 1.09% (65th percentile), so the practical risk is driven almost entirely by whether an organization has exposed the executor to untrusted input.

RemediationAI

No vendor-released patch identified at time of analysis - the feed carries no fix version and no patch reference beyond the ZDI advisory (https://www.zerodayinitiative.com/advisories/ZDI-25-1143/), which should be monitored for the vendor's fixed release; upgrade to the first patched smolagents version as soon as it is published. Until then, apply compensating controls targeted at the deserialization path: remove the remote Python executor from any network-reachable position and bind it to loopback or a private interface behind mTLS-authenticated, allow-listed clients (trade-off: breaks distributed/multi-host agent deployments); replace or wrap pickle with a safe serialization format such as JSON or a restricted unpickler with an explicit class allow-list (trade-off: incompatible payloads and possible refactoring of custom executor subclasses); and run the executor in a disposable, least-privilege container with no host mounts, no cloud metadata access, and restricted egress so that code execution cannot pivot beyond the process (trade-off: reduced functionality for agents that legitimately need filesystem or network access, plus operational overhead). Do not feed externally sourced or third-party data into the executor's deserialization path, and log/alert on anomalous pickle payloads reaching the endpoint.

Affected Packages

pypi smolagents no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-502, deserialization of untrusted data, in the smolagents remote Python executor - the component that lets LLM-driven agents dispatch Python code to a separate execution process. That client/server channel relies on Python pickle for serialization, and pickle is inherently unsafe against hostile input: an attacker who controls the serialized blob can embed a __reduce__ payload that invokes arbitrary callables (os.system, subprocess, etc.) the moment pickle.loads() runs, before any validation of the 'code' being executed. The flaw is that user-supplied data is parsed as pickle without validation, signature checking, or a restricted unpickler. The assessed vector includes S:C (scope change), reflecting that code execution escapes the intended agent-sandbox boundary and lands in the hosting service account - which is why impact is scored C:H/I:H/A:H rather than being contained to the agent runtime. No CPE strings were supplied in the intelligence feed, so affected builds cannot be enumerated from CPE data; the only vendor-side artifact is the ZDI advisory ZDI-25-1143 / ZDI-CAN-28312.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (trendmicro) PRIMARY 10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 10.0 CRITICAL

Unauthenticated remote pickle RCE gives AV:N/AC:L/PR:N/UI:N with full C/I/A:H; S:C reflects the remote-executor escape running code in the broader service-account context.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (trendmicro).

CVSS VectorVendor: trendmicro

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Hugging Face smolagents Remote Python Executor Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Hugging Face smolagents. Authentication is not required to exploit this vulnerability.

The specific flaw exists within the parsing of pickle data. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-28312.

Executive ViewAI

Why It Matters

Hugging Face smolagents' remote Python executor contains a critical unsafe pickle deserialization flaw (CVE-2025-14931) that can allow unauthenticated remote code execution under the service account when the executor is reachable by attacker-controlled input. The business exposure is concentrated in teams that expose this component to untrusted networks or data sources; those deployments could suffer host compromise, data exposure, and operational disruption, while no public exploit identified at time of analysis means priority should be exposure reduction. Leadership should care because the vulnerability is conditional on deployment architecture but potentially severe where the executor is exposed.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; disable or isolate the Hugging Face smolagents remote Python executor, restrict network reachability to trusted sources only, require authentication and authorization at a controlling gateway, run the service under a least-privilege account with sandboxing and egress filtering, and monitor for anomalous process or outbound activity.

Threat Intelligence Overview

EPSS Score
1.1%
Top 35% exploitable
Prevalence
Low
emerging open-source AI agent framework, growing but niche production footprint
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 1.1%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy