概要
遠端 Amazon Linux 2023 主機缺少一個安全性更新。
說明
因此,它會受到 ALAS2023-2026-1815 公告中所提及的多個弱點影響。
jq 是命令行 JSON 處理器。透過 jvp_string_append() 和 jvp_string_copy_replace_bad 函式中的 version 1.8.1 存在整數溢位弱點,其中串連總長度超過 2^31 位元組的字串會導致緩衝區配置大小計算中出現 32 位元無正負號整數溢位,進而導致堆積緩衝區大小嚴重不足。隨後的記憶體複製操作會將完整的字串資料寫入這個大小不足的緩衝區,導致分類為 CWE-190(整數溢位)的堆積緩衝區溢位,從而導致 CWE-122(堆積型緩衝區溢位)。任何評估不受信任 jq 查詢的系統都會受到影響,因為攻擊者可能會透過製作產生極大字串的查詢,使處理程序當機,或可能透過堆積損毀來實現進一步的利用。根本原因是缺少字串大小邊界檢查,這與已經有大小限制的陣列和物件不同。此問題已在提交 e47e56d226519635768e6aab2f38f0ab037c09e5 中解決。(CVE-2026-32316)
jq 是命令行 JSON 處理器。在以下版本 1.8.1 中,jq 的 src/jv_aux.c 中的函數 jv_setpath()、jv_getpath() 和 delpaths_sorted() 使用無限遞迴,其深度由調用方提供的路徑陣列的長度控制,沒有強制執行深度限制。攻擊者可以提供包含 ~65,000 個整數 (~200 KB) 的平面陣列的 JSON 文件,當受信任的 jq 篩選器將其用作路徑引數時,會耗盡 C 呼叫堆疊並因分割錯誤 (SIGSEGV) 而使處理程序崩潰。此繞過之所以有效,是因為現有的MAX_PARSING_DEPTH (10,000) 限制只會保護 JSON 剖析器,而無法保護執行階段路徑作業,其中陣列可以透過程式設計方式建構為任意長度。其影響是拒絕服務 (無法復原的損毀),會影響任何透過 jq 的 setpath、getpath 或 delpaths 內建記憶體處理不受信任 JSON 輸入的應用程式或服務。此問題已在提交 fb59f1491058d58bdc3e8dd28f1773d1ac690a1f 中解決。(CVE-2026-33947)
jq 是命令行 JSON 處理器。6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b 之前的提交包含弱點,其中 CLI 輸入剖析允許透過內嵌 NUL 位元組繞過驗證。從檔案或 stdin 讀取 JSON 時,jq 使用 strlen() 來確定緩衝區長度,而不是來自 fgets() 的實際位元組計數,導致它截斷第一個 NUL 位元組的輸入並僅剖析前面的前綴。這可讓攻擊者在 NUL 位元組之前製作具有良性 JSON 前置詞的輸入,後面接著惡意尾端資料,其中 jq 僅將前置詞驗證為有效 JSON,同時默默捨棄後綴。
依賴 jq 在將不受信任的 JSON 轉送給下游消費者之前驗證不受信任的 JSON 的工作流程容易受到剖析器差異攻擊,因為這些消費者可能會處理包括惡意尾端位元組在內的完整輸入。此問題已透過提交 6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b 修補。
(CVE-2026-33948)
jq 是命令行 JSON 處理器。在 69785bf77f86e2ea1b4a20ca86775916889e91c9 之後的提交中,
jq 的 src/builtin.c 中的_strindices內建直接將其引數傳遞給 jv_string_indexes(),而不驗證它們是否為字串,而 src/jv.c 中的 jv_string_indexes() 僅依賴 assert() 檢查,這些檢查在使用 -DNDEBUG 編譯的發行版本中被剝離。這允許攻擊者使用 _strindices(0) 等輸入輕鬆地使 jq 崩潰,並通過製作一個數值,其 IEEE-754 位模式映射到選定的指標,實現受控的指標解除參照和有限的內存讀取/探測原語。任何針對發行版本評估不受信任 jq 篩選器的部署都容易受到攻擊。此問題已在提交 fdf8ef0f0810e3d365cdd5160de43db46f57ed03 中修補。(CVE-2026-39956)
jq 是命令行 JSON 處理器。在 2f09060afab23fe9390cce7cb860b10416e1bf5f 之前的提交中,libjq 中的 jv_parse_sized() API 接受具有明確長度參數的計數緩衝區,但其錯誤處理路徑使用 jv_string_fmt() 中的 %s 格式化輸入緩衝區,該緩衝區會讀取直到找到 NUL 終止符,而不是遵守調用方提供的長度。這表示在非 NUL 終止緩衝區中傳遞格式錯誤的 JSON 時,錯誤建構邏輯會在緩衝區結尾執行越界讀取。任何具有不受信任輸入的 libjq 消費者調用 jv_parse_sized() 都可存取此弱點,而且視記憶體配置而定,可能會導致記憶體洩漏或處理程序終止。此問題已在提交 2f09060afab23fe9390cce7cb860b10416e1bf5f 中修補。(CVE-2026-39979)
jq 是命令行 JSON 處理器。在提交 0c7d133c3c7e37c00b6d46b658a02244fdd3c784 之前,jq 將 MurmurHash3 與硬式編碼、公開可見的種子 (0x432A9843) 用於所有 JSON 物件雜湊表作業,這允許攻擊者離線預先計算金鑰衝突。透過提供特製的 JSON 物件 (~100 KB),其中所有金鑰都雜湊到同一個儲存桶中,雜湊表查詢從 O(1) 降級到 O(n),將任何 jq 運算式變成 O(n2) 操作並導致嚴重的 CPU 耗盡。這會影響常見的 jq 使用案例,例如 CI/CD 管道、Web 服務和資料處理指令碼,並且比現有的堆積溢位問題更實用,因為它只需要很小的負載。此問題已在提交 0c7d133c3c7e37c00b6d46b658a02244fdd3c784 中修補。(CVE-2026-40164)
jq 是命令行 JSON 處理器。在 1.8.1 和之前,當 decNumberFromString 提供 INT_MAX-1 (2147483646) 位數的數字常值時,D2U() 巨集會在 signed-int 算術期間溢位。包裝的負值會略過堆積配置大小檢查,導致函式使用 30 位元組堆疊緩衝區,然後寫入 [?]七億一千五百萬個 16 位元單位 ([?]1.4 GiB) 位於堆疊框架下方的偏移 1.43 GiB 處。書面內容完全由攻擊者控制 (剖析後的十進位數,每個單位打包 3 個)。
(CVE-2026-43894)
jq 是命令行 JSON 處理器。在 1.8.1 和之前,jv_object_merge_recursive() 中的無限遞迴允許精心製作的 jq 程式使用段錯誤使進程崩潰。當兩個運算元都是物件時,可以透過 * 運算子存取此函式。(CVE-2026-43896)
Tenable 已直接從所測試產品的安全公告擷取前置描述區塊。
請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。
解決方案
執行 'dnf update jq --releasever 2023.12.20260608' 或 'dnf update --advisory ALAS2023-2026-1815 --releasever 2023.12.20260608' 以更新您的系統。
Plugin 詳細資訊
檔案名稱: al2023_ALAS2023-2026-1815.nasl
代理程式: unix
支援的感應器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, Nessus
風險資訊
媒介: CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:P
媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L
時間媒介: CVSS:3.0/E:P/RL:O/RC:C
Threat Vector: CVSS:4.0/E:P
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
弱點資訊
CPE: p-cpe:/a:amazon:linux:jq, p-cpe:/a:amazon:linux:jq-debuginfo, p-cpe:/a:amazon:linux:jq-devel, cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:jq-debugsource
必要的 KB 項目: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
可輕鬆利用: Exploits are available