CVE-2026-32875UltraJSON 是 Python 的快速 JSON 编解码器。其 5.10 至 5.11.0 版本存在安全漏洞,涉及通过大缩进处理导致的缓冲区溢出或无限循环。当缩进参数与嵌套深度的乘积超过 INT32_MAX 时,调用 ujson.dumps() 会导致 Python 解释器崩溃。若缩进为较大的负数,程序可能陷入无限循环。该漏洞由计算缩进内存时的整数溢出或下溢引起,攻击者可利用此漏洞发起拒绝服务攻击。
该漏洞的核心在于 UltraJSON 在处理 JSON 格式化输出时,用于计算缩进所需内存的算法存在缺陷。具体而言,代码在计算内存大小时使用了 indent * depth 的乘积,且未进行充分的边界检查。当该乘积超过 INT32_MAX 时发生整数上溢,导致分配的缓冲区过小,后续写入操作引发缓冲区溢出并导致 Python 解释器崩溃(段错误)。此外,当 indent 为较大的负数时,计算过程会发生整数下溢。特别是在输入数据至少包含一层嵌套结构时,下溢会导致循环条件判断失效,使程序陷入死循环。攻击者若能控制 indent 参数或提供特定深度的嵌套数据,即可远程触发这些异常,导致目标服务资源耗尽或进程终止,从而实现拒绝服务攻击。