CVE-2026-40612该漏洞存在于jq命令行JSON处理器1.8.1及更早版本中。由于`jv_contains`函数在递归处理嵌套数组或对象时缺乏深度限制,攻击者可以通过构建程序化的超深嵌套输入结构(绕过JSON解析器的10000层深度限制),导致C栈耗尽,从而引发拒绝服务攻击。
漏洞的根本原因在于`jv_contains`函数实现时未对递归深度进行限制。虽然jq的JSON解析器在解析文本输入时限制深度为10000层以防止堆栈溢出,但攻击者可以利用jq内置的`reduce`函数在内存中动态构建更深层次的嵌套对象。当`contains`操作被应用于这种深度嵌套的对象时,`jv_contains`会无限制地进行递归调用,迅速耗尽C语言栈空间,导致进程崩溃。该漏洞攻击复杂度低,需要用户交互,主要影响系统可用性。