CVE-2025-67221CVE-2025-67221是Python orjson库中的一个高危拒绝服务漏洞。orjson是一个高性能的JSON序列化/反序列化库,被广泛应用于Python生态系统中的数据处理、API开发、日志系统等场景。该漏洞存在于orjson.dumps函数的深度嵌套JSON文档处理逻辑中,由于未对递归深度进行合理限制,攻击者可以通过构造极端深度的嵌套JSON结构来触发栈溢出,从而导致应用程序崩溃或服务中断。攻击者无需任何认证或用户交互即可发起攻击,只需向目标服务提交特制的恶意JSON数据即可。该漏洞影响orjson 3.11.4及之前所有版本,由于orjson常用于Web服务、API网关、数据管道等关键基础设施,漏洞被利用可能造成严重的业务中断风险。
orjson.dumps函数在序列化JSON数据时采用递归算法处理嵌套结构。当遇到嵌套的字典或列表时,函数会递归调用自身来逐层处理每一层嵌套。正常情况下,这种递归实现能够高效地处理合理深度的JSON结构。然而,orjson 3.11.4及之前版本未实现递归深度限制机制,导致攻击者可以构造具有数百甚至数千层嵌套的JSON文档。攻击者通过向使用orjson处理JSON的服务提交此类恶意数据,触发深层递归调用。由于Python的调用栈空间有限,过深的递归会导致栈溢出(Stack Overflow),最终造成Python进程崩溃。这种攻击具有无感知性、低成本、高破坏力的特点,攻击者只需发送一个精心构造的HTTP请求即可实现拒绝服务效果。防御者需要在应用层或库层面实现递归深度检测和限制。