jqlangのjqにおける整数オーバーフローの脆弱性
タイトル jqlangのjqにおける整数オーバーフローの脆弱性
概要

jqはコマンドラインのJSONプロセッサです。バージョン1.8.1およびそれ以前において、decNumberFromStringにINT_MAX-1(2147483646)桁の数値リテラルが与えられると、D2U()マクロが符号付き整数演算中にオーバーフローします。オーバーフローして負の値となった結果、ヒープ割り当てサイズチェックを回避し、関数は30バイトのスタックバッファを使用します。その後、スタックフレームの1.43 GiB下のオフセットに約7億1500万個の16ビット単位(約1.4 GiB)を書き込みます。書き込まれる内容は完全に攻撃者が制御可能であり、解析された10進数の桁数が単位あたり3つで詰め込まれます。

想定される影響 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年5月11日0:00
登録日 2026年5月15日10:58
最終更新日 2026年5月15日10:58
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
jqlang
jq 1.8.1 およびそれ以前
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
変更履歴
No 変更内容 変更日
1 [2026年05月15日]
  掲載
2026年5月15日10:58

NVD脆弱性情報
CVE-2026-43894
概要

jq is a command-line JSON processor. In 1.8.1 and earlier, when decNumberFromString is given a number literal of INT_MAX-1 (2147483646) digits, the D2U() macro overflows during signed-int arithmetic. The wrapped negative value bypasses the heap-allocation size check, causes the function to use a 30-byte stack buffer, and then writes ≈715 million 16-bit units (≈1.4 GiB) at an offset 1.43 GiB below the stack frame. The written content is fully attacker-controlled (the parsed decimal digits, packed 3-per-unit).

公表日 2026年5月12日3:16
登録日 2026年5月12日4:14
最終更新日 2026年5月14日2:01
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:* 1.8.1
関連情報、対策とツール
共通脆弱性一覧