CVE-2026-26209cbor2库在解码深度嵌套结构时存在不受控递归漏洞。攻击者可通过发送特制的深度嵌套CBOR负载,触发Python解释器的最大递归深度限制或耗尽栈空间,导致RecursionError并使工作进程崩溃。此漏洞影响纯Python实现和C扩展,可导致Web服务或任务队列完全拒绝服务。
该漏洞源于cbor2库在解码CBOR数据时未对数据结构的嵌套深度实施硬性限制,而是完全依赖Python解释器的内部递归限制(Py_EnterRecursiveCall)。攻击者可以构造一个包含大约100,000个嵌套数组(字节码0x81)的恶意CBOR数据包(小于100KB)。当cbor2.loads()尝试解析此数据时,递归调用会迅速耗尽堆栈资源,触发RecursionError。在Gunicorn、Uvicorn或Celery等常见应用服务器环境中,未捕获的RecursionError会导致工作进程立即终止。攻击者通过持续发送此类小数据包,可反复崩溃工作进程,从而造成应用彻底的拒绝服务。