Safeguard
Vulnerability Analysis•

CVE-2026-4963: Code Injection in Hugging Face smolagents

CVE-2026-4963 is a medium code injection in smolagents local_python_executor, an incomplete fix for CVE-2025-9959. No fix is named; sandbox agent code.

Safeguard Security Team
3 min read

CVE-2026-4963 is a medium severity (CVSS 6.3) code injection in Hugging Face smolagents 1.25.0.dev0. The record says the local Python executor still has gaps after the earlier fix for CVE-2025-9959. No fixed version is named, so run agent code in a real sandbox and watch the project.

What's affected

  • Product: Hugging Face smolagents, version 1.25.0.dev0 per the record.
  • Component: src/smolagents/local_python_executor.py, in the evaluate_augassign, evaluate_call and evaluate_with functions.
  • Fixed version: none stated in the record. The record says the vendor was contacted and did not respond. Check the project's releases and advisories.
  • Weaknesses: CWE-74, injection, and CWE-94, code injection.
  • CVSS 6.3 (medium), vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L. User interaction is needed.
  • Published 27 March 2026. Not marked as exploited in CISA KEV. The record says a public write-up exists.

How to check if you're exposed

Check whether and how you use the local executor.

pip show smolagents | grep -i '^version'
grep -R "LocalPythonExecutor\|local_python_executor" --include=*.py .

The local executor runs model-written Python inside a restricted interpreter in your own process. If your agents use it with input that outsiders can influence, you are in the group this CVE is about. If you use a remote or container-based executor, the local executor weaknesses do not apply in the same way.

What to do now

  1. Check the smolagents releases and security advisories for a fix newer than the version in the record.
  2. Run agent code in an isolated environment such as a container or a separate sandbox service instead of the local executor.
  3. Give that environment no secrets, no broad network access and a short lifetime.
  4. Limit which inputs can reach agents that execute code, and require review of actions with side effects.
  5. Log what the agent executes so you can investigate.

Why it matters

A restricted Python interpreter tries to let a model run code while blocking dangerous operations. That is hard to get right, because Python has many ways to reach things indirectly. The record describes this as an incomplete fix: the earlier CVE was addressed, and further paths in the same executor remained. The classes are CWE-74 and CWE-94.

The safer design is to assume the interpreter can be escaped and to put a boundary around it, such as a container with no credentials.

Safeguard has a free in-browser dependency scan at gold.safeguard.sh/scan that matches the packages in a manifest against known CVEs.

Try it yourself

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

Quick check

Is the local executor safe if I trust my prompts?

Not on its own. Prompts can include text from documents and web pages, so treat generated code as untrusted and sandbox it.

Sources

Last reviewed: 19 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.