| Title | jqlangのjqにおける再帰制御に関する脆弱性 |
|---|---|
| Summary | jqはコマンドラインのJSONプロセッサです。バージョン1.8.1以下では、jqのsrc/jv_aux.cにある関数jv_setpath()、jv_getpath()、およびdelpaths_sorted()が、呼び出し元が提供するパス配列の長さによって制御される深さ無制限の再帰を使用しており、深さの制限が適用されていません。攻撃者は約65,000個の整数(約200KB)の平坦な配列を含むJSONドキュメントを提供でき、これが信頼されたjqフィルタによってパス引数として使用されると、Cのコールスタックを枯渇させ、セグメンテーション違反(SIGSEGV)によりプロセスがクラッシュします。この問題が発生するのは、既存のMAX_PARSING_DEPTH(10,000)制限がJSONパーサのみを保護し、配列がプログラム的に任意の長さに構築可能なランタイムのパス操作は保護されていないためです。影響はサービス拒否(回復不能なクラッシュ)であり、jqのsetpath、getpath、またはdelpathsビルトインを介して信頼できないJSON入力を処理する任意のアプリケーションまたはサービスに影響を及ぼします。この問題はコミットfb59f1491058d58bdc3e8dd28f1773d1ac690a1fで修正されました。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | 正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | April 13, 2026, midnight |
| Registration Date | April 23, 2026, 10:12 a.m. |
| Last Update | April 23, 2026, 10:12 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| jqlang |
| jq 1.8.1 およびそれ以前 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月23日] 掲載 |
April 23, 2026, 10:12 a.m. |
| Summary | jq is a command-line JSON processor. In versions 1.8.1 and below, functions jv_setpath(), jv_getpath(), and delpaths_sorted() in jq's src/jv_aux.c use unbounded recursion whose depth is controlled by the length of a caller-supplied path array, with no depth limit enforced. An attacker can supply a JSON document containing a flat array of ~65,000 integers (~200 KB) that, when used as a path argument by a trusted jq filter, exhausts the C call stack and crashes the process with a segmentation fault (SIGSEGV). This bypass works because the existing MAX_PARSING_DEPTH (10,000) limit only protects the JSON parser, not runtime path operations where arrays can be programmatically constructed to arbitrary lengths. The impact is denial of service (unrecoverable crash) affecting any application or service that processes untrusted JSON input through jq's setpath, getpath, or delpaths builtins. This issue has been addressed in commit fb59f1491058d58bdc3e8dd28f1773d1ac690a1f. |
|---|---|
| Publication Date | April 14, 2026, 7:16 a.m. |
| Registration Date | April 15, 2026, 11:39 a.m. |
| Last Update | April 22, 2026, 8:57 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:* | 1.8.1 | ||||