APScheduler JSONSerializer 反序列化远程代码执行漏洞 (CVE-2026-31072) 漏洞概述 APScheduler 的 (以及 )虽然被文档标记为比 Python 更安全,但其自定义的对象重建机制允许任意类实例化和状态注入。攻击者通过发送特制的序列化数据,可触发反序列化过程,导致远程代码执行(RCE)。 影响范围 漏洞类型:CWE-502 (不受信任数据的反序列化) 受影响版本:APScheduler 4.0.0a3, 4.0.0a4, 4.0.0a5, 4.0.0a6(所有 4.x 预发布版本)。 注:4.0.0a1 引入了 JSON/CBOR 序列化器;3.x 版本(最新稳定版 3.11.3)不包含此漏洞。 攻击向量:网络(当攻击者控制的序列化数据到达反序列化器时)。 受影响组件: 受影响方法: : : 漏洞原理 序列化器使用自定义 处理非原生 JSON 可序列化类型。当 JSON 对象包含键 时,会调用 来重建 Python 对象。 函数执行以下危险操作: 1. 动态导入:解析字符串引用(如 )并动态导入模块。 2. 任意实例化:获取类并创建新实例。 3. 状态注入:调用 方法,传入攻击者控制的数据。 示例利用代码 (POC) 以下是一个恶意载荷,当被反序列化时,会执行系统命令(例如 ): 修复方案 升级版本:升级到包含修复的 APScheduler 版本(建议关注官方发布的稳定版或后续补丁版本)。 避免使用:在不可信环境中,避免使用 和 处理来自不可信源的数据。 输入验证**:对传入的序列化数据进行严格的白名单验证,防止恶意类引用。