PT-2025-42654 · Pyquokka · Pyquokka
Published
2025-10-17
·
Updated
2025-10-22
·
CVE-2025-62515
CVSS v3.1
9.8
Critical
| Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Name of the Vulnerable Software and Affected Versions
pyquokka versions 0.3.1 and earlier
marsupialtail quokka versions 3.0.1 and earlier
Description
pyquokka contains a critical remote code execution (RCE) flaw stemming from the insecure deserialization of data received from Flight clients. The
FlightServer class utilizes pickle.loads() without sanitization or validation within the do action() method, located in pyquokka/flight.py at line 283. When the FlightServer is configured to listen on 0.0.0.0, this allows attackers across the network to execute arbitrary code by sending malicious pickled payloads through the set configs action. Additional vulnerable functions include cache garbage collect, do put, and do get, which also use pickle.loads() to deserialize untrusted remote data. An attacker can exploit this by sending a crafted pickle dump, such as a payload designed to execute the 'ls -l' command, leading to complete system compromise, data exfiltration, and potential lateral movement within the network.Recommendations
Versions prior to 0.3.1: Replace
pickle.loads() with safer alternatives such as JSON serialization, Protocol Buffers, or MessagePack. If pickle must be used, implement a custom Unpickler with a restricted find class() method that only allows whitelisted classes.
Versions prior to 3.0.1: Replace pickle.loads() with safer alternatives such as JSON serialization, Protocol Buffers, or MessagePack. If pickle must be used, implement a custom Unpickler with a restricted find class() method that only allows whitelisted classes.Exploit
Fix
RCE
Deserialization of Untrusted Data
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Pyquokka