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
Published: 2026-05-19
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the JSONSerializer and CBORSerializer of APScheduler, allowing an attacker to craft a JSON or CBOR payload that will be deserialized by the unmarshal_object function. This process permits arbitrary class instantiation and state injection by dynamically importing Python modules and invoking __setstate__ on any class available in the environment, effectively enabling remote code execution. This is a classic example of insecureerialization, mapped to CWE‑502. The attack does not require additional permissions beyond the ability to send the payload to an application that uses these serializers. The raw impact is that an attacker can execute arbitrary code on the target system and potentially gain full control of the application or underlying host.

Affected Systems

Any Python application that imports and uses the APScheduler library – specifically all versions of the APScheduler library including 3.10.x and the experimental 4.0.0a5 release – is impacted. Because the vulnerability is tied to the library itself, every environment where APScheduler is installed and the JSONSerializer or CBORSerializer is invoked is vulnerable. No vendor or product name beyond APScheduler was specified in the advisory.

Risk and Exploitability

The advisory does not report a CVSS score or EPSS value, and the vulnerability is not listed in CISA’s KEV catalog. Based on the description, the likely attack vector is remote exploitation via network if the application exposes an endpoint that accepts serialized input; it could also be local if a user can provide a crafted payload to the application. No exploitation prerequisites beyond the presence of the vulnerable library and the ability to send the malicious payload are mentioned, implying the exploitation path is straightforward. Because the vulnerability allows arbitrary code execution, the potential severity is high, and it should be treated as a top priority.

Generated by OpenCVE AI on May 19, 2026 at 16:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest APScheduler release that eliminates insecure deserialization support or patches the vulnerable serializers
  • If an upgrade is not feasible, remove any use of JSONSerializer or CBORSerializer from the application code and replace them with a safe serialization mechanism
  • Ensure that only trusted data is passed to the serializer and consider running the deserialization in a sandboxed or isolated environment to mitigate potential exploitation

Generated by OpenCVE AI on May 19, 2026 at 16:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 19 May 2026 17:15:00 +0000

Type Values Removed Values Added
Title Insecure Deserialization in APScheduler Enabling Arbitrary Code Execution
Weaknesses CWE-116
CWE-502

Tue, 19 May 2026 15:45:00 +0000

Type Values Removed Values Added
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
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-05-19T14:47:33.378Z

Reserved: 2026-03-09T00:00:00.000Z

Link: CVE-2026-31072

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-05-19T16:16:20.610

Modified: 2026-05-19T18:04:29.373

Link: CVE-2026-31072

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-19T17:00:12Z

Weaknesses