All vulnerabilities
CVE-2026-31072GHSA-9cfw-f3f9-7mm7PYSEC-2026-282

APScheduler's JSONSerializer and CBORSerializer are vulnerable to Remote Code Execution (RCE) via Insecure Deserialization

n/a apschedulerpipLibraries & packages
CVSS
9.8Critical
ExploitationPublic exploit codeCISA's assessment says proof of concept code is public, assessed 20 May 2026. Not in the KEV catalogCISA via CVE List
Exploit odds (EPSS)0.81%Chance of exploitation activity in the next 30 days, higher than 56% of CVEs. Scored 27 Oct 2026FIRST EPSS
Fixed inNone listedNo source names a fixed version. Check the vendor advisory below
Published19 May 2026Updated 27 Oct 2026CVE List

What fixes it

No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.

Description

The JSONSerializer and CBORSerializer in APScheduler (all versions including 3.10.x and 4.0.0a5) are vulnerable to Remote Code Execution (RCE) via Insecure Deserialization. The unmarshal_object function allows for arbitrary class instantiation and state injection by dynamically importing modules and calling __setstate__ on any class available in the Python environment. An attacker can exploit this by submitting a specially crafted JSON or CBOR payload to an application using these serializers

Text from CVE List

Affected versions 9

  • apscheduler, pip>= 4.0.0a1, <= 4.0.0a6GitHub
  • n/aaffected: n/aCVE List
  • apscheduler, PyPIfrom 4.0.0a1, through 4.0.0a6OSV
  • apscheduler, PyPI4.0.0a1OSV
  • apscheduler, PyPI4.0.0a2OSV
  • apscheduler, PyPI4.0.0a3OSV
  • apscheduler, PyPI4.0.0a4OSV
  • apscheduler, PyPI4.0.0a5OSV
  • apscheduler, PyPI4.0.0a6OSV

References 9