CVE-2026-43896jq是一款轻量级的命令行JSON处理器。在1.8.1及更早版本中,其核心库中的jv_object_merge_recursive()函数存在严重的逻辑缺陷。该函数在处理对象合并时缺乏对递归深度的检查,导致攻击者可以构造特定的jq程序。当程序使用*运算符对两个对象进行操作时,会触发无限递归,进而导致进程发生段错误崩溃,造成拒绝服务。
漏洞根源在于jq源码中jv_object_merge_recursive()函数的实现逻辑不严谨。该函数用于递归合并两个JSON对象,但在实现过程中未设置最大递归深度限制。当攻击者利用*运算符对两个操作数均为对象的表达式进行求值时,如果其中一个对象包含自引用或极深的嵌套结构(如通过函数定义生成递归对象),递归过程将无法终止。这种无限制的递归调用会迅速消耗调用栈空间,最终导致Stack Overflow。由于CVSS向量为AV:L,攻击者需控制本地输入,一旦执行,jq进程将崩溃,影响可用性。