CVE-2026-43894jq是一个命令行JSON处理器。在1.8.1及更早版本中,当decNumberFromString函数处理包含INT_MAX-1位数字的字面量时,D2U()宏在整数运算期间发生溢出。这导致绕过堆分配大小检查,进而使用栈缓冲区并写入大量攻击者控制的数据,造成内存破坏。
该漏洞源于`decNumberFromString`函数在处理极大数字时的逻辑缺陷。当输入长度为INT_MAX-1(2147483646)位数字时,用于计算所需存储单元的`D2U()`宏发生有符号整数溢出,产生负值。该负值导致程序误判所需内存大小,绕过了堆分配检查。随后,程序试图使用仅30字节的栈缓冲区来容纳数据,并在栈帧下方约1.43 GiB处写入约1.4 GiB的攻击者控制内容(解析后的十进制数字)。这种越界写入可导致拒绝服务或潜在的任意代码执行。