CVE-2026-41256jq是一款广泛使用的命令行JSON处理器。在1.8.1及更早版本中存在一个安全漏洞,涉及文件加载时的NUL字节处理问题。当使用-f参数从文件加载顶层jq程序时,程序会在遇到第一个嵌入的NUL字节时发生截断,仅执行NUL之前的前缀代码。这导致jq在编译路径上出现前缀与全缓冲区的不匹配,尽管JSON解析路径已修复,但该问题仍可能被利用于绕过安全限制或造成完整性影响。
该漏洞源于jq在处理通过-f参数加载的文件时,对NUL字节(\x00)的处理逻辑存在缺陷。在受影响版本中,当解析器读取到NUL字节时,会错误地认为文件结束,从而丢弃后续的所有内容。这种截断行为导致了“前缀/全缓冲区不匹配”的问题。具体而言,虽然JSON解析路径已经修复了CVE-2026-33948中提到的类似问题,但编译路径并未同步修复。攻击者可以构造一个特殊的jq过滤器文件,例如在合法的过滤表达式后插入NUL字节和任意后缀。当jq编译并执行该文件时,它只看到NUL字节前的部分,但在内部缓冲区处理上可能产生不一致。这种不一致可能被利用来破坏程序的完整性(I:H),例如导致非预期的代码编译或执行逻辑。