
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2025-62703 is a remote code execution (RCE) vulnerability in the Fugue distributed computing framework caused by unsafe pickle deserialization in its FlaskRPCServer component. It affects Fugue versions ≤ 0.9.2 (pip package), and was disclosed on November 25, 2025 via a GitHub Security Advisory. The vulnerability carries a CVSS v3.1 base score of 8.8 (High), exploitable from an adjacent network without authentication or user interaction (Github Advisory, Fugue Advisory).
The root cause is deserialization of untrusted data (CWE-502), specifically in the _decode() function within fugue/rpc/flask.py, which calls cloudpickle.loads() directly on client-supplied data without any sanitization or validation. An attacker on the same network segment can connect to the FlaskRPCServer (particularly when bound to 0.0.0.0) and send a crafted HTTP POST request to the /invoke endpoint containing a malicious serialized Python object. Because cloudpickle executes arbitrary Python code during deserialization, the payload runs immediately on the server with the privileges of the Fugue process. No authentication is required, and the attack complexity is low (Github Advisory, Fugue Advisory).
Successful exploitation grants an attacker arbitrary code execution on the server hosting the Fugue RPC service, resulting in complete system compromise across confidentiality, integrity, and availability dimensions. Attackers can exfiltrate sensitive data processed by distributed computing workloads, install persistent backdoors, launch denial-of-service attacks, or use the compromised host as a pivot point for lateral movement within the network. Environments running Fugue on shared or multi-tenant distributed computing infrastructure (Spark, Dask, Ray clusters) face elevated risk due to the potential blast radius across worker nodes (Github Advisory).
A proof-of-concept (PoC) demonstration — including a modified flask.py, rpc_server.py, and rpc_client.py — was published alongside the advisory, with a demo video attached (Fugue Advisory). There is no confirmed evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.42–0.56%, placing it in roughly the 69th percentile for exploitation likelihood within 30 days. The vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Qualys has assigned detection ID 5006332 for this vulnerability (Github Advisory).
FlaskRPCServer bound to a non-localhost interface (e.g., 0.0.0.0) by scanning for open TCP ports associated with the Flask RPC service on the target network segment._encode() function in fugue/rpc/flask.py to serialize a malicious Python object using cloudpickle. The payload embeds an OS command (e.g., os.system('ls -l') or a reverse shell) that executes upon deserialization.rpc_client.py) — with the modified flask.py replacing the legitimate one in pip site-packages — to send an HTTP POST request to the /invoke endpoint of the target FlaskRPCServer._decode() function calls cloudpickle.loads() on the received payload without validation, executing the embedded malicious code in the server process context./invoke endpoint from non-trusted IP addresses; outbound connections from the Fugue server process to unknown external hosts (potential reverse shell or C2 traffic)./bin/sh, bash, curl, wget, nc); unexpected process execution of system commands not associated with normal Fugue workloads.fugue/rpc/flask.py); unexpected scripts, cron jobs, or SSH authorized keys added by the Fugue service account./invoke with unusually large or binary-encoded payloads; Python exceptions or tracebacks related to cloudpickle.loads() with unexpected object types (Fugue Advisory).The patched version is Fugue 0.9.3, which adds security warnings when the RPC server starts on non-localhost interfaces, alerting operators to the risk (commit 6f25326). Users should upgrade immediately via pip install --upgrade fugue. As interim workarounds: bind the FlaskRPCServer to 127.0.0.1 instead of 0.0.0.0; implement network-level controls (firewall rules, VPC segmentation) to restrict access to the RPC port; and consider replacing cloudpickle.loads() with safer serialization alternatives (JSON, Protocol Buffers, or a restricted custom Unpickler) if modifying the source is feasible (Fugue Advisory, Patch Commit).
The vulnerability was reported by researcher Chenpinji and published by project maintainer kvnkho via GitHub's security advisory process on November 25, 2025. Red Hat acknowledged the vulnerability in their CVE tracking on December 2, 2025. The CISA vulnerability bulletin for the week of November 24, 2025 included this CVE. Community discussion has been limited, with no major media coverage or notable researcher commentary beyond the initial advisory (Fugue Advisory, Red Hat CVE).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."