CVE-2026-44777CVE-2026-44777是jq命令行JSON处理器中存在的一个拒绝服务漏洞。该漏洞影响1.8.2rc1及更早版本。由于普通模块加载器在处理模块依赖时未实施循环检测机制,当两个原本有效的模块相互包含引用时,加载器将进行无限递归。攻击者可诱导用户加载特制的相互引用的JSON模块文件,触发无限循环,导致应用程序崩溃或资源耗尽,从而造成拒绝服务。
该漏洞的核心原理在于jq的模块加载器逻辑存在缺陷。在正常情况下,模块加载器应维护一个已加载或正在加载的模块列表,以防止循环依赖导致的无限递归。然而,受影响的jq版本在解析`include`指令时,没有检查目标模块是否已经在当前的调用栈中。当模块A包含模块B,且模块B又包含模块A时,程序将陷入死循环。随着递归深度的增加,调用栈会被迅速填满,导致栈溢出错误,或者CPU资源被长时间占用。攻击向量为本地(AV:L),需要用户交互(UI:N - 等等,输入说是UI:R),意味着攻击者需要诱骗用户执行命令来处理恶意文件。