CVE-2026-43896
jq: Stack Overflow in Recursive Object Merge
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.2
jq: Stack Overflow in Recursive Object Merge
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
CVE-2026-43896- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
EUVDEUVD-2026-29174
6.2
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
EUVD-2026-29174- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
NVD
6.2
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
CVE-2026-43896- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-43896
5.5
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
ALPINE-CVE-2026-43896- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2026-43896
5.5
- Record
BELL-CVE-2026-43896- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSV
6.2
jq: Stack Overflow in Recursive Object Merge
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
CVE-2026-43896- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
Show 19 moreShow less
OSVDEBIAN-CVE-2026-43896
5.5
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
DEBIAN-CVE-2026-43896- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2026-2424
5.5
jq security update
jq is a lightweight and flexible command-line JSON processor. you can use it to slice and filter and map and transform structured data. It is written in portable C, and it has zero runtime dependencies. it can mangle the data format that you have into the one that you want.
Security Fix(es):
jq is a command-line JSON processor. In 1.8.1 and earlier, jv_contains recurses into nested arrays/objects with no depth limit. With a sufficiently nested input structure (built programmatically with reduce, since the JSON parser caps at depth 10000), the C stack is exhausted.(CVE-2026-40612)
jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with -f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as . followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON parser path has already been fixed.(CVE-2026-41256)
jq is a command-line JSON processor. In 1.8.1 and earlier, the jq bytecode VM's data stack tracks its allocation size in a signed int. When the stack grows beyond ≈1 GiB (via deeply nested generator forks), the doubling arithmetic overflows. The wrapped value is passed to realloc and then used for a memmove with attacker-influenced offsets.(CVE-2026-41257)
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).(CVE-2026-43894)
jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.(CVE-2026-43895)
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.(CVE-2026-43896)
jq is a command-line JSON processor. In 1.8.2rc1 and earlier, the ordinary module loader recurses without cycle detection when two otherwise valid modules include each other.(CVE-2026-44777)
- Record
OESA-2026-2424- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2026-2425
5.5
jq security update
jq is a lightweight and flexible command-line JSON processor. you can use it to slice and filter and map and transform structured data. It is written in portable C, and it has zero runtime dependencies. it can mangle the data format that you have into the one that you want.
Security Fix(es):
jq is a command-line JSON processor. In 1.8.1 and earlier, jv_contains recurses into nested arrays/objects with no depth limit. With a sufficiently nested input structure (built programmatically with reduce, since the JSON parser caps at depth 10000), the C stack is exhausted.(CVE-2026-40612)
jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with -f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as . followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON parser path has already been fixed.(CVE-2026-41256)
jq is a command-line JSON processor. In 1.8.1 and earlier, the jq bytecode VM's data stack tracks its allocation size in a signed int. When the stack grows beyond ≈1 GiB (via deeply nested generator forks), the doubling arithmetic overflows. The wrapped value is passed to realloc and then used for a memmove with attacker-influenced offsets.(CVE-2026-41257)
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).(CVE-2026-43894)
jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.(CVE-2026-43895)
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.(CVE-2026-43896)
jq is a command-line JSON processor. In 1.8.2rc1 and earlier, the ordinary module loader recurses without cycle detection when two otherwise valid modules include each other.(CVE-2026-44777)
- Record
OESA-2026-2425- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2026-2426
5.5
jq security update
jq is a lightweight and flexible command-line JSON processor. you can use it to slice and filter and map and transform structured data. It is written in portable C, and it has zero runtime dependencies. it can mangle the data format that you have into the one that you want.
Security Fix(es):
jq is a command-line JSON processor. In 1.8.1 and earlier, jv_contains recurses into nested arrays/objects with no depth limit. With a sufficiently nested input structure (built programmatically with reduce, since the JSON parser caps at depth 10000), the C stack is exhausted.(CVE-2026-40612)
jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with -f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as . followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON parser path has already been fixed.(CVE-2026-41256)
jq is a command-line JSON processor. In 1.8.1 and earlier, the jq bytecode VM's data stack tracks its allocation size in a signed int. When the stack grows beyond ≈1 GiB (via deeply nested generator forks), the doubling arithmetic overflows. The wrapped value is passed to realloc and then used for a memmove with attacker-influenced offsets.(CVE-2026-41257)
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).(CVE-2026-43894)
jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.(CVE-2026-43895)
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.(CVE-2026-43896)
jq is a command-line JSON processor. In 1.8.2rc1 and earlier, the ordinary module loader recurses without cycle detection when two otherwise valid modules include each other.(CVE-2026-44777)
- Record
OESA-2026-2426- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2026-2427
5.5
jq security update
jq is a lightweight and flexible command-line JSON processor. you can use it to slice and filter and map and transform structured data. It is written in portable C, and it has zero runtime dependencies. it can mangle the data format that you have into the one that you want.
Security Fix(es):
jq is a command-line JSON processor. In 1.8.1 and earlier, jv_contains recurses into nested arrays/objects with no depth limit. With a sufficiently nested input structure (built programmatically with reduce, since the JSON parser caps at depth 10000), the C stack is exhausted.(CVE-2026-40612)
jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with -f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as . followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON parser path has already been fixed.(CVE-2026-41256)
jq is a command-line JSON processor. In 1.8.1 and earlier, the jq bytecode VM's data stack tracks its allocation size in a signed int. When the stack grows beyond ≈1 GiB (via deeply nested generator forks), the doubling arithmetic overflows. The wrapped value is passed to realloc and then used for a memmove with attacker-influenced offsets.(CVE-2026-41257)
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).(CVE-2026-43894)
jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.(CVE-2026-43895)
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.(CVE-2026-43896)
jq is a command-line JSON processor. In 1.8.2rc1 and earlier, the ordinary module loader recurses without cycle detection when two otherwise valid modules include each other.(CVE-2026-44777)
- Record
OESA-2026-2427- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2026-2487
5.5
jq security update
jq is a lightweight and flexible command-line JSON processor. you can use it to slice and filter and map and transform structured data. It is written in portable C, and it has zero runtime dependencies. it can mangle the data format that you have into the one that you want.
Security Fix(es):
jq is a command-line JSON processor. In 1.8.1 and earlier, jv_contains recurses into nested arrays/objects with no depth limit. With a sufficiently nested input structure (built programmatically with reduce, since the JSON parser caps at depth 10000), the C stack is exhausted.(CVE-2026-40612)
jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with -f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as . followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON parser path has already been fixed.(CVE-2026-41256)
jq is a command-line JSON processor. In 1.8.1 and earlier, the jq bytecode VM's data stack tracks its allocation size in a signed int. When the stack grows beyond ≈1 GiB (via deeply nested generator forks), the doubling arithmetic overflows. The wrapped value is passed to realloc and then used for a memmove with attacker-influenced offsets.(CVE-2026-41257)
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).(CVE-2026-43894)
jq is a command-line JSON processor. In 1.8.1 and earlier, jq accepts embedded NUL bytes in import paths at the jq-language level, but later resolves those paths through C string operations during module and data-file lookup. This creates a mismatch between the logical import string that policy or audit code may validate and the on-disk path that jq actually opens.(CVE-2026-43895)
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.(CVE-2026-43896)
jq is a command-line JSON processor. In 1.8.2rc1 and earlier, the ordinary module loader recurses without cycle detection when two otherwise valid modules include each other.(CVE-2026-44777)
- Record
OESA-2026-2487- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2026:29986
6.6
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:29986- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-43896
6.2
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
UBUNTU-CVE-2026-43896- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVAZL-86375 No score
CVE-2026-43896 affecting package jq for versions less than 1.7.1-6
jq is a command-line JSON processor. In 1.8.1 and earlier, unbounded recursion in jv_object_merge_recursive() allows a crafted jq program to crash the process with a segfault. The function is reachable through the * operator when both operands are objects.
- Record
AZL-86375- Updated
- 2026-11-02
OSVCLSA-2026-1779123410 No score
jq: Fix of 8 CVEs
- CVE-2026-40164: randomize hash seed to mitigate hash collision DoS
- CVE-2026-40612: limit containment check depth
- CVE-2026-41256: fix NUL truncation in program files loaded with -f
- CVE-2026-41257: fix signed-int overflow in stack_reallocate
- CVE-2026-43894: cap numeric literal length to DEC_MAX_DIGITS
- CVE-2026-43895: reject embedded NUL bytes in module import paths
- CVE-2026-43896: limit recursive object merge depth
- CVE-2026-44777: detect circular module imports
- Record
CLSA-2026-1779123410- Updated
- 2026-11-02
OSVCLSA-2026-1779273835 No score
jq: Fix of 8 CVEs
- CVE-2026-40164: randomize hash seed to mitigate hash collision DoS
- CVE-2026-40612: limit containment check depth
- CVE-2026-41256: fix NUL truncation in program files loaded with -f
- CVE-2026-41257: fix signed-int overflow in stack_reallocate
- CVE-2026-43894: cap numeric literal length to DEC_MAX_DIGITS
- CVE-2026-43895: reject embedded NUL bytes in module import paths
- CVE-2026-43896: limit recursive object merge depth
- CVE-2026-44777: detect circular module imports
- Record
CLSA-2026-1779273835- Updated
- 2026-11-02
OSVMGASA-2026-0535 No score
Updated jq package fixes security vulnerabilities
Embedded NUL truncates top-level jq programs loaded with -f.
(CVE-2026-41256)
Signed-int overflow in stack_reallocate (jq VM stack).
(CVE-2026-41257)
Wild stack write via signed-integer overflow in decNumber D2U() macro.
(CVE-2026-43894)
Embedded NUL in jq import paths causes local redaction-policy bypass and
preserves sensitive fields in published artifacts. (CVE-2026-43895)
Stack Overflow in Recursive Object Merge. (CVE-2026-43896)
Stack overflow in module loading on mutual include. (CVE-2026-44777)
Stack overflow in deep structural equality. (CVE-2026-47770)
jq --rawfile invalid-state reuse after String too long causes
heap-buffer-overflow. (CVE-2026-49839)
Potential integer overflow in jvp_string_append. (CVE-2026-54679)
- Record
MGASA-2026-0535- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10850-1 No score
jq-1.8.1-3.1 on GA media
These are all security issues fixed in the jq-1.8.1-3.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10850-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21318-1 No score
Security update for jq
This update for jq fixes the following issues
- CVE-2026-43896: unbounded recursion in jv_object_merge_recursive() can lead to C stack exhaustion and a process crash (bsc#1265075).
- CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-49839: fixed a bug where jq --rawfile can turn a handled oversized-string error into invalid-state reuse and a real heap out-of-bounds write in assertion-disabled builds (bsc#1269220).
- CVE-2026-54679: integer overflow in jvp_string_append can lead to a buffer overrun on 32-bit systems (bsc#1269390).
- Record
openSUSE-SU-2026:21318-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22597-1 No score
Security update for jq
This update for jq fixes the following issues
- CVE-2026-43896: unbounded recursion in jv_object_merge_recursive() can lead to C stack exhaustion and a process crash (bsc#1265075).
- CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-49839: fixed a bug where jq --rawfile can turn a handled oversized-string error into invalid-state reuse and a real heap out-of-bounds write in assertion-disabled builds (bsc#1269220).
- CVE-2026-54679: integer overflow in jvp_string_append can lead to a buffer overrun on 32-bit systems (bsc#1269390).
- Record
SUSE-SU-2026:22597-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22637-1 No score
Security update for jq
This update for jq fixes the following issues
- CVE-2026-43896: unbounded recursion in jv_object_merge_recursive() can lead to C stack exhaustion and a process crash (bsc#1265075).
- CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-49839: fixed a bug where jq --rawfile can turn a handled oversized-string error into invalid-state reuse and a real heap out-of-bounds write in assertion-disabled builds (bsc#1269220).
- CVE-2026-54679: integer overflow in jvp_string_append can lead to a buffer overrun on 32-bit systems (bsc#1269390).
- Record
SUSE-SU-2026:22637-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22900-1 No score
Security update for jq
This update for jq fixes the following issues
- CVE-2026-43896: unbounded recursion in jv_object_merge_recursive() can lead to C stack exhaustion and a process crash (bsc#1265075).
- CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules include each other can lead to stack exhaustion and process crash (bsc#1265076).
- CVE-2026-49839: fixed a bug where jq --rawfile can turn a handled oversized-string error into invalid-state reuse and a real heap out-of-bounds write in assertion-disabled builds (bsc#1269220).
- CVE-2026-54679: integer overflow in
jvp_string_appendcan lead to a buffer overrun on 32-bit systems (bsc#1269390).
- Record
SUSE-SU-2026:22900-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23873-1 No score
Security update for jq
This update for jq fixes the following issues:
Security issues fixed:
- CVE-2015-8863: heap buffer overflow in tokenadd() function (bsc#976992).
- CVE-2023-50246: improper memory handling can lead to a heap buffer overflow in
decNumberToString(bsc#1218034). - CVE-2023-50268: stack-based buffer overflow in builds using decNumber (bsc#1218038).
- CVE-2024-53427: stack-buffer-overflow in the decNumberCopy function in decNumber.c (bsc#1238078).
- CVE-2025-9403: reachable assertion in run_jq_tests() (bsc#1248600).
- CVE-2026-32316: denial of Service or potential arbitrary code execution due to integer overflow and heap-based buffer overflow (bsc#1262044).
- CVE-2026-33948: CLI input parsing allows validation bypass via embedded NUL bytes (bsc#1262043).
- CVE-2026-40164: predictable hash collisions can lead to a denial of service (bsc#1262072).
- CVE-2026-40612: jv_contains recurses into nested arrays/objects with no depth limit and can cause a stack overflow (bsc#1265060).
- CVE-2026-41256: embedded NUL truncates top-level jq programs loaded with -f and can lead to execution of unintended programs (bsc#1265061).
- CVE-2026-41257: integer overflow in
stack_reallocatecan lead to memory corruption and DoS (bsc#1265062). - CVE-2026-43894: signed integer overflow in
decNumbercan lead to out-of-bounds memory write (bsc#1265070). - CVE-2026-43895: embedded NUL bytes in import paths can lead to policy bypass and sensitive information disclosure (bsc#1265071).
- CVE-2026-43896: unbounded recursion in
jv_object_merge_recursive()can lead to C stack exhaustion and a process crash (bsc#1265075). - CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-47770: stack overflow in deep structural equality (bsc#1269221).
- CVE-2026-49839:
--rawfileinvalid-state reuse afterString too longcan lead to a heap buffer overflow (bsc#1269220). - CVE-2026-54679: integer overflow in
jvp_string_appendcan lead to a buffer overrun on 32-bit systems (bsc#1269390).
Changes for jq:
Update to version 1.7.1:
- Make the default background color more suitable for bright backgrounds.
- Allow passing the inline jq script after --.
- Fix possible uninitialised value dereference if jq_init() fails
- Simplify paths/0 and paths/1.
- Reject U+001F in string literals.
- Remove unused nref accumulator in block_bind_library.
- Remove a bunch of unused variables, and useless assignments.
- main.c: Remove unused EXIT_STATUS_EXACT option.
- Actually use the number correctly casted from double to int as index.
- src/builtin.c: remove unnecessary jv_copy-s in type_error/type_error2.
- Remove undefined behavior caught by LLVM 10 UBSAN.
- Convert decnum to binary64 (double) instead of decimal64. This makes jq behave like the JSON specification suggests and more similar to other languages.
- Fix memory leaks on invalid input for ltrimstr/1 and rtrimstr/1.
- Fix memory leak on failed get for setpath/2.
- Fix nan from json parsing also for nans with payload that start with 'n'.
- Allow carriage return characters in comments.
- Generate links in the man page.
- Add extern C for C++.
- Make object key color configurable using JQ_COLORS environment variable.
- Change the default color of null to Bright Black.
- Respect NO_COLOR environment variable to disable color output.
- Improved --help output. Now mentions all options and nicer order.
- Fix multiple issues of exit code using --exit-code/-e option.
- Add --raw-output0 for NUL (zero byte) separated output.
- Fix assert crash and validate JSON for --jsonarg.
- Remove deprecated --argfile option.
- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate.
- Adds new builtin pick(stream) to emit a projection of the input object or array.
- Adds new builtin…
- Record
SUSE-SU-2026:23873-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4275-1 No score
Security update for jq
This update for jq fixes the following issues:
Security issues fixed:
- CVE-2015-8863: heap buffer overflow in tokenadd() function (bsc#976992).
- CVE-2023-50246: improper memory handling can lead to a heap buffer overflow in
decNumberToString(bsc#1218034). - CVE-2023-50268: stack-based buffer overflow in builds using decNumber (bsc#1218038).
- CVE-2024-53427: stack-buffer-overflow in the decNumberCopy function in decNumber.c (bsc#1238078).
- CVE-2025-9403: reachable assertion in run_jq_tests() (bsc#1248600).
- CVE-2026-33948: CLI input parsing allows validation bypass via embedded NUL bytes (bsc#1262043).
- CVE-2026-40164: predictable hash collisions can lead to a denial of service (bsc#1262072).
- CVE-2026-40612: jv_contains recurses into nested arrays/objects with no depth limit and can cause a stack overflow (bsc#1265060).
- CVE-2026-41256: embedded NUL truncates top-level jq programs loaded with -f and can lead to execution of unintended programs (bsc#1265061).
- CVE-2026-41257: integer overflow in
stack_reallocatecan lead to memory corruption and DoS (bsc#1265062). - CVE-2026-43894: signed integer overflow in
decNumbercan lead to out-of-bounds memory write (bsc#1265070). - CVE-2026-43895: embedded NUL bytes in import paths can lead to policy bypass and sensitive information disclosure (bsc#1265071).
- CVE-2026-43896: unbounded recursion in
jv_object_merge_recursive()can lead to C stack exhaustion and a process crash (bsc#1265075). - CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-47770: stack overflow in deep structural equality (bsc#1269221).
- CVE-2026-49839:
--rawfileinvalid-state reuse afterString too longcan lead to a heap buffer overflow (bsc#1269220). - CVE-2026-54679: integer overflow in
jvp_string_appendcan lead to a buffer overrun on 32-bit systems (bsc#1269390).
Changes for jq:
Update to version 1.7.1:
- Make the default background color more suitable for bright backgrounds.
- Allow passing the inline jq script after --.
- Fix possible uninitialised value dereference if jq_init() fails
- Simplify paths/0 and paths/1.
- Reject U+001F in string literals.
- Remove unused nref accumulator in block_bind_library.
- Remove a bunch of unused variables, and useless assignments.
- main.c: Remove unused EXIT_STATUS_EXACT option.
- Actually use the number correctly casted from double to int as index.
- src/builtin.c: remove unnecessary jv_copy-s in type_error/type_error2.
- Remove undefined behavior caught by LLVM 10 UBSAN.
- Convert decnum to binary64 (double) instead of decimal64. This makes jq behave like the JSON specification suggests and more similar to other languages.
- Fix memory leaks on invalid input for ltrimstr/1 and rtrimstr/1.
- Fix memory leak on failed get for setpath/2.
- Fix nan from json parsing also for nans with payload that start with 'n'.
- Allow carriage return characters in comments.
- Generate links in the man page.
- Add extern C for C++.
- Make object key color configurable using JQ_COLORS environment variable.
- Change the default color of null to Bright Black.
- Respect NO_COLOR environment variable to disable color output.
- Improved --help output. Now mentions all options and nicer order.
- Fix multiple issues of exit code using --exit-code/-e option.
- Add --raw-output0 for NUL (zero byte) separated output.
- Fix assert crash and validate JSON for --jsonarg.
- Remove deprecated --argfile option.
- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate.
- Adds new builtin pick(stream) to emit a projection of the input object or array.
- Adds new builtin debug(msgs) that works like debug but applies a filter on the input before writing to stderr.
- Adds new builtin scan($re; $flags). Was documented…
- Record
SUSE-SU-2026:4275-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
jqAlpine:v3.22 |
before 1.8.2-r0 | 1.8.2-r0 |
jqAlpine:v3.23 |
before 1.8.2-r0 | 1.8.2-r0 |
jqAlpine:v3.24 |
before 1.8.2-r0 | 1.8.2-r0 |
jqAzure Linux:3 |
before 1.7.1-6 | 1.7.1-6 |
jqAlpaquita:23 |
1.6-r2 up to 1.8.1-r1 | 1.8.1-r1 |
jqAlpaquita:25 |
1.7.1-r0 up to 1.8.1-r2 | 1.8.1-r2 |
jqAlpaquita:stream |
1.6-r1 up to 1.8.1-r1 | 1.8.1-r1 |
jqTuxCare:AlmaLinux:9.2 |
before 1.6-14.el9.tuxcare.els6 | 1.6-14.el9.tuxcare.els6 |
jq-develTuxCare:AlmaLinux:9.2 |
before 1.6-14.el9.tuxcare.els6 | 1.6-14.el9.tuxcare.els6 |
jqTuxCare:AlmaLinux:9.6 |
before 1.6-17.el9_6.2.tuxcare.els3 | 1.6-17.el9_6.2.tuxcare.els3 |
Show 42 moreShow less
| Package | Affected | Fixed |
|---|---|---|
jq-develTuxCare:AlmaLinux:9.6 |
before 1.6-17.el9_6.2.tuxcare.els3 | 1.6-17.el9_6.2.tuxcare.els3 |
jqDebian:12 |
before 1.6-2.1+deb12u2, plus listed versions 1.6-2.11.6-2.1+deb12u1 |
1.6-2.1+deb12u2 |
jqDebian:13 |
before 1.7.1-6+deb13u3, plus listed versions 1.7.1-6+deb13u11.7.1-6+deb13u2 |
1.7.1-6+deb13u3 |
jqDebian:14 |
before 1.8.1-6, plus listed versions 1.8.0-11.8.1-11.8.1-21.8.1-31.8.1-41.8.1-5 |
1.8.1-6 |
jqMageia:10 |
before 1.8.2-1.mga10 | 1.8.2-1.mga10 |
jqopenEuler:20.03-LTS-SP4 |
before 1.8.0-4.oe2003sp4 | 1.8.0-4.oe2003sp4 |
jqopenEuler:22.03-LTS-SP4 |
before 1.8.0-4.oe2203sp4 | 1.8.0-4.oe2203sp4 |
jqopenEuler:24.03-LTS |
before 1.8.0-4.oe2403 | 1.8.0-4.oe2403 |
jqopenEuler:24.03-LTS-SP3 |
before 1.8.0-4.oe2403sp3 | 1.8.0-4.oe2403sp3 |
jqopenEuler:24.03-LTS-SP1 |
before 1.8.0-4.oe2403sp1 | 1.8.0-4.oe2403sp1 |
jqRed Hat:hummingbird:1 |
before 0:1.8.2-0.1.hum1 | 0:1.8.2-0.1.hum1 |
jq-develRed Hat:hummingbird:1 |
before 0:1.8.2-0.1.hum1 | 0:1.8.2-0.1.hum1 |
jqSUSE:Linux Micro 6.2 |
before 1.7.1-160000.4.1 | 1.7.1-160000.4.1 |
jqSUSE:Linux Enterprise Server 16.0 |
before 1.7.1-160000.4.1 | 1.7.1-160000.4.1 |
jqSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 1.7.1-160000.4.1 | 1.7.1-160000.4.1 |
jqSUSE:Linux Micro 6.1 |
before 1.7.1-slfo.1.1_4.1 | 1.7.1-slfo.1.1_4.1 |
jqSUSE:Linux Micro 6.0 |
before 1.7.1-1.1 | 1.7.1-1.1 |
jqSUSE:Linux Enterprise Micro 5.3 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Micro 5.4 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Micro 5.5 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Module for Basesystem 15 SP7 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server 15 SP4-LTSS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server 15 SP5-LTSS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server 15 SP6-LTSS |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server for SAP Applications 15 SP4 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server for SAP Applications 15 SP5 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server for SAP Applications 15 SP6 |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.2-81.3-11.3-1.1ubuntu11.3-1.1ubuntu1.11.3-1.1ubuntu1.1+esm31.3-1.1ubuntu1.1+esm4 |
None known |
jqUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.4-2.11.5+dfsg-11.5+dfsg-1ubuntu0.11.5+dfsg-1ubuntu0.1+esm21.5+dfsg-1ubuntu0.1+esm31.5+dfsg-1ubuntu0.1+esm4 |
None known |
jqUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 1.5+dfsg-21.5+dfsg-2ubuntu0.1~esm11.5+dfsg-2ubuntu0.1~esm21.5+dfsg-2ubuntu0.1~esm3 |
None known |
jqUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 1.5+dfsg-2build11.6-11.6-1ubuntu0.20.04.11.6-1ubuntu0.20.04.1+esm11.6-1ubuntu0.20.04.1+esm21.6-1ubuntu0.20.04.1+esm3 |
None known |
jqUbuntu:22.04:LTS |
All versions, plus listed versions 1.6-2.1ubuntu21.6-2.1ubuntu31.6-2.1ubuntu3.11.6-2.1ubuntu3.2 |
None known |
jqUbuntu:24.04:LTS |
All versions, plus listed versions 1.6-31.7-11.7.1-21.7.1-31.7.1-3build11.7.1-3ubuntu0.24.04.11.7.1-3ubuntu0.24.04.2 |
None known |
jqUbuntu:25.10 |
All versions, plus listed versions 1.7.1-3ubuntu11.7.1-6ubuntu11.8.1-3ubuntu11.8.1-3ubuntu1.1 |
None known |
jqUbuntu:26.10 |
All versions, plus listed versions 1.8.1-4ubuntu11.8.2-1ubuntu1 |
None known |
jqUbuntu:26.04:LTS |
All versions, plus listed versions 1.8.1-3ubuntu11.8.1-4ubuntu11.8.1-4ubuntu2 |
None known |
jqopenSUSE:Tumbleweed |
before 1.8.1-3.1 | 1.8.1-3.1 |
jqopenSUSE:Leap 16.0 |
before 1.7.1-160000.4.1 | 1.7.1-160000.4.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-43896 is a medium vulnerability (CVSS 6.2) in Jqlang Jq, published May 11, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.15%, the 4th percentile. Fixed in jq 1.8.2-r0.
References
github.com/jqlang/jq/security/advisories/GHSA-mg96-6h3q-g846
security.alpinelinux.org/vuln/CVE-2026-43896
nvd.nist.gov/vuln/detail/CVE-2026-43896
docs.bell-sw.com/security/cves/CVE-2026-43896
errata.tuxcare.com/els_os/almalinux9.2esu/CLSA-2026-1779123410.html
errata.tuxcare.com/els_os/tuxcare9.6esu/CLSA-2026-1779273835.html
Show 111 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43896.json
security-tracker.debian.org/tracker/CVE-2026-43896
advisories.mageia.org/MGASA-2026-0535.html
bugs.mageia.org/show_bug.cgi?id=35785
lists.opensuse.org/archives/list/[email protected]/message/R2ZT3O453YX2G4PIOLGAVJX45WHP37RM
github.com/jqlang/jq/security/advisories/GHSA-cfh2-vwfq-qfmm
github.com/jqlang/jq/security/advisories/GHSA-29gj-222p-j7vx
lists.debian.org/debian-lts-announce/2026/07/msg00003.html
github.com/jqlang/jq/security/advisories/GHSA-vf2h-chrj-q3fg
github.com/jqlang/jq/security/advisories/GHSA-4jm8-m363-4539
github.com/jqlang/jq/security/advisories/GHSA-5v7p-2r57-2g4g
github.com/jqlang/jq/security/advisories/GHSA-7q7g-mrq3-phxr
github.com/jqlang/jq/security/advisories/GHSA-rmpv-jgvr-wpr9
lists.debian.org/debian-security-announce/2026/msg00327.html
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2424
nvd.nist.gov/vuln/detail/CVE-2026-40612
nvd.nist.gov/vuln/detail/CVE-2026-41256
nvd.nist.gov/vuln/detail/CVE-2026-41257
nvd.nist.gov/vuln/detail/CVE-2026-43894
nvd.nist.gov/vuln/detail/CVE-2026-43895
nvd.nist.gov/vuln/detail/CVE-2026-44777
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2425
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2426
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2427
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2487
access.redhat.com/errata/RHSA-2026:29986
images.redhat.com
access.redhat.com/security/cve/CVE-2026-43895
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2026-41256
access.redhat.com/security/cve/CVE-2026-41257
access.redhat.com/security/cve/CVE-2026-43896
access.redhat.com/security/cve/CVE-2026-40612
access.redhat.com/security/cve/CVE-2026-47770
access.redhat.com/security/cve/CVE-2026-54679
access.redhat.com/security/cve/CVE-2026-43894
access.redhat.com/security/cve/CVE-2026-49839
access.redhat.com/security/cve/CVE-2026-44777
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_29986.json
bugzilla.redhat.com/show_bug.cgi?id=2469183
cve.org/CVERecord?id=CVE-2026-40612
github.com/jqlang/jq/security/advisories/GHSA-r7m6-x9c7-h69j
bugzilla.redhat.com/show_bug.cgi?id=2469193
cve.org/CVERecord?id=CVE-2026-41256
bugzilla.redhat.com/show_bug.cgi?id=2469187
cve.org/CVERecord?id=CVE-2026-41257
bugzilla.redhat.com/show_bug.cgi?id=2469175
cve.org/CVERecord?id=CVE-2026-43894
bugzilla.redhat.com/show_bug.cgi?id=2469199
cve.org/CVERecord?id=CVE-2026-43895
bugzilla.redhat.com/show_bug.cgi?id=2469184
cve.org/CVERecord?id=CVE-2026-43896
bugzilla.redhat.com/show_bug.cgi?id=2469192
cve.org/CVERecord?id=CVE-2026-44777
bugzilla.redhat.com/show_bug.cgi?id=2493034
cve.org/CVERecord?id=CVE-2026-47770
nvd.nist.gov/vuln/detail/CVE-2026-47770
github.com/jqlang/jq/security/advisories/GHSA-3pgx-frr7-3jxp
bugzilla.redhat.com/show_bug.cgi?id=2493020
cve.org/CVERecord?id=CVE-2026-49839
nvd.nist.gov/vuln/detail/CVE-2026-49839
bugzilla.redhat.com/show_bug.cgi?id=2493030
cve.org/CVERecord?id=CVE-2026-54679
nvd.nist.gov/vuln/detail/CVE-2026-54679
suse.com/support/update/announcement/2026/suse-su-202622597-1
bugzilla.suse.com/1265075
bugzilla.suse.com/1265076
bugzilla.suse.com/1269220
bugzilla.suse.com/1269390
suse.com/security/cve/CVE-2026-43896
suse.com/security/cve/CVE-2026-44777
suse.com/security/cve/CVE-2026-49839
suse.com/security/cve/CVE-2026-54679
suse.com/support/update/announcement/2026/suse-su-202622637-1
suse.com/support/update/announcement/2026/suse-su-202622900-1
suse.com/support/update/announcement/2026/suse-su-202623873-1
bugzilla.suse.com/1215737
bugzilla.suse.com/1218034
bugzilla.suse.com/1218038
bugzilla.suse.com/1238078
bugzilla.suse.com/1248600
bugzilla.suse.com/1262043
bugzilla.suse.com/1262044
bugzilla.suse.com/1262072
bugzilla.suse.com/1265060
bugzilla.suse.com/1265061
bugzilla.suse.com/1265062
bugzilla.suse.com/1265070
bugzilla.suse.com/1265071
bugzilla.suse.com/1269221
bugzilla.suse.com/976992
suse.com/security/cve/CVE-2015-8863
suse.com/security/cve/CVE-2023-50246
suse.com/security/cve/CVE-2023-50268
suse.com/security/cve/CVE-2024-53427
suse.com/security/cve/CVE-2025-9403
suse.com/security/cve/CVE-2026-32316
suse.com/security/cve/CVE-2026-33948
suse.com/security/cve/CVE-2026-40164
suse.com/security/cve/CVE-2026-40612
suse.com/security/cve/CVE-2026-41256
suse.com/security/cve/CVE-2026-41257
suse.com/security/cve/CVE-2026-43894
suse.com/security/cve/CVE-2026-43895
suse.com/security/cve/CVE-2026-47770
suse.com/support/update/announcement/2026/suse-su-20264275-1
ubuntu.com/security/CVE-2026-43896
github.com/jqlang/jq/commit/532ccea6080ed6758f39fe9f6208a44b665023d2
suse.com/security/cve/CVE-2026-33947
suse.com/security/cve/CVE-2026-39956
suse.com/security/cve/CVE-2026-39979
Left out here: the rest of 2 source descriptions. The JSON record has them.