Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Pyro3 unpickles untrusted client messages by default over the network with no authentication or interaction, yielding full code execution, so AV:N/AC:L/PR:N/UI:N and C/I/A all High.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionCVE.org
An issue in the <code>pickle</code> protocol of Pyro v3.x allows attackers to execute arbitrary code via supplying a crafted pickled string message.
AnalysisAI
Remote code execution in Pyro (Python Remote Objects) 3.x arises because the wire protocol deserializes untrusted client messages with Python's pickle module, letting an attacker who can reach a Pyro daemon run arbitrary code by sending a crafted pickled message. All Pyro 3.x deployments that accept network connections are affected, and CWE-94 code injection combined with the CVSS 9.8 rating reflects full compromise of the host process. There is no public exploit identified at time of analysis, and the low EPSS score (0.02%) suggests no observed opportunistic exploitation despite the trivial technical requirements.
Technical ContextAI
Pyro3 is a legacy Python RPC framework that serializes remote method calls and their arguments for transport between clients and a Pyro daemon. The flaw is the classic insecure-deserialization pattern (CWE-94 / code injection): the protocol layer (referenced at Pyro/protocol.py lines 672-711) unpickles incoming byte streams, and pickle's __reduce__ mechanism executes arbitrary callables during object reconstruction. Because pickle is not a safe serialization format for untrusted input, any endpoint that unpickles attacker-controlled bytes effectively grants code execution; the CPE data is unhelpful here (listed as 'n/a'), so affected-product identity comes from the reference URLs pointing to the irmen/Pyro3 repository rather than structured CPE.
RemediationAI
No vendor-released patched version is identified at time of analysis, and Pyro3 is a retired codebase; the strongest remediation is to migrate off Pyro3 to a maintained RPC framework or a Pyro version/serializer that does not unpickle untrusted data, since pickle-based transport is insecure by design. As compensating controls: restrict network access to the Pyro daemon port so only trusted, authenticated hosts can connect (e.g., firewall the Pyro port to a management subnet or bind it to localhost), which prevents untrusted clients from delivering pickled payloads but breaks legitimate remote clients that rely on open access; require transport-level mutual authentication/VPN in front of the daemon so unauthenticated peers cannot reach the deserializer; and consult Pyro's own security guidance (github.com/irmen/Pyro3/blob/master/docs/9-security.html#L341-L346) and the advisory GHSA-7625-w9h5-83rv for configuration hardening. Treat any deployment that accepts pickle from clients as trust-equivalent to granting those clients shell access.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same weakness CWE-94 – Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-22059