Bug 2479907 (CVE-2026-31072)

Summary: CVE-2026-31072 apscheduler: APScheduler: Remote Code Execution via Insecure Deserialization
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: anthomas, aprice, bbrownin, bdettelb, caswilli, cmyers, dfreiber, dnakabaa, doconnor, drow, dschmidt, eglynn, ehelms, erezende, ggainey, jburrell, jdobes, jjoyce, jkoehler, jlanda, jpretori, jsamir, jschluet, juwatts, kaycoth, kgaikwad, kshier, lcouzens, lhh, ljawale, lphiri, luizcosta, mburns, mgarciac, mhulan, nmoumoul, nweather, oezr, orabin, osousa, pcreech, rbobbitt, rchan, rhel-process-autobot, sdawley, simaishi, smallamp, smcdonal, stcannon, teagle, tmalecek, vkumar, watson-tool-maintainers, yguenane
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in APScheduler, affecting its JSONSerializer and CBORSerializer components. This vulnerability, known as insecure deserialization, allows a remote attacker to execute arbitrary code on the system. By sending a specially crafted data payload, an attacker can manipulate the application to run malicious commands, potentially leading to a complete compromise of the affected system.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-05-19 16:01:25 UTC
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