Security Digest · Vulnerability record

CVE-2025-62515: pyquokka is Vulnerable to Remote Code Execution by Pickle Deserialization via FlightServer

pyquokka is a framework for making data lakes work for time series.

CVSS 9.8 Critical EPSS 0.8% · p57

Should you act?

Critical and remotely reachable

No known exploitation yet, but it is network-reachable without credentials. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.

  • Not in CISA KEV, but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
  • EPSS 0.8%, percentile 57: FIRST’s model estimates a 0.8% chance of exploitation activity in the next 30 days, higher than 57% of all scored CVEs (moderate). EPSS is a probability, not a verdict.
  • Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
  • Only applies if your dependency tree includes pyquokka (PyPI) <= 0.3.1, no fixed version listed. Check your lockfile, including transitive dependencies.

What it is

pyquokka is a framework for making data lakes work for time series. In versions 0.3.1 and prior, the FlightServer class directly uses pickle.loads() to deserialize action bodies received from Flight clients without any sanitization or validation in the doaction() method. The vulnerable code is located in pyquokka/flight.py at line 283 where arbitrary data from Flight clients is directly passed to pickle.loads(). When FlightServer is configured to listen on 0.0.0.0, this allows attackers across the entire network to perform arbitrary remote code execution by sending malicious pickled payloads through the setconfigs action. Additional vulnerability points exist in the cachegarbagecollect, doput, and doget functions where pickle.loads is used to deserialize untrusted remote data.

From the GitHub advisory

Description

In the FlightServer class of the pyquokka framework, the doaction() method directly uses pickle.loads() to deserialize action bodies received from Flight clients without any sanitization or validation, which results in a remote code execution vulnerability. The vulnerable code is located in pyquokka/flight.py at line 283, where arbitrary data from Flight clients is directly passed to pickle.loads().

Even more concerning, when FlightServer is configured to listen on 0.0.0.0 (as shown in the provided server example at line 339), this allows attackers across the entire network to perform arbitrary remote code execution by sending malicious pickled payloads through the setconfigs action.

In addition, the functions cachegarbagecollect, doput, and doget also contain vulnerability points where pickle.loads is used to deserialize untrusted remote data. Please review and fix these issues accordingly. This report uses the setconfigs action as an example.

Proof of Concept

Weakness type: CWE-502.

Product: pyquokka (PyPI) · Assigned by: GitHub_M · Published: 2025-10-17

Affected and fixed versions

EcosystemPackageVulnerableFirst fixed
PyPIpyquokka<= 0.3.1none listed
VendorProductAffected versions (per CVE record)
marsupialtailquokka<= 3.0.1

Severity scores

Scored byCVSSScoreVector
GitHub_M3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
GitHub3.19.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Attack vector: network (remotely reachable)
  • Attack complexity: low
  • Privileges required: none (no login)
  • User interaction: none
  • Scope: unchanged

CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.

Exploitation and urgency

  • CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
  • CISA SSVC assessment: exploitation poc, automatable no, technical impact partial.
  • FIRST EPSS (model of 2026-10-21): 0.83% probability of exploitation activity in the next 30 days; percentile 57.

Timeline

  • — CVE record last updated
  • — CVE record published by GitHub_M
  • — GitHub-reviewed advisory GHSA-f74j-gffq-vm9p published (critical)

Sources and references

Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.

Vulnerability records

  1. GitHub Advisory GHSA-f74j-gffq-vm9p github.com
  2. CVE.org record CVE-2025-62515 cve.org
  3. NVD entry CVE-2025-62515 nvd.nist.gov

Other references from the CVE record and advisory

  1. github.com github.com
  2. github.com github.com

Critical PyPI advisories · Today’s Security Digest