Описание
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 but not implemented.
- Adds new builtin abs to get absolute value. This potentially allows the literal value of numbers to be preserved as length and fabs convert to float.
- Allow if without else-branch. When skipped the else-branch will be . (identity).
- Allow use of $binding as key in object literals.
- Allow dot between chained indexes when using .['index']
- Allow dot for chained value iterator .[], .[]?
- Fix try/catch catches more than it should.
- Speed up and refactor some builtins, also remove scalars_or_empty/0.
- Now halt and halt_error exit immediately instead of continuing to the next input.
- Fix issue converting string to number after previous convert error.
- Fix issue representing large numbers on some platforms causing invalid JSON output.
- Fix deletion using assigning empty against arrays.
- Allow keywords to be used as binding name in more places.
- Allow using nan as NaN in JSON.
- Expose a module's function names in modulemeta.
- Fix contains/1 to handle strings with NUL.
- Fix stderr/0 to output raw text without any decoration.
- Fix nth/2 to emit empty on index out of range.
- Fix implode to not assert and instead replace invalid unicode codepoints.
- Fix indices/1 and rindex/1 in case of overlapping matches in strings.
- Fix sub/3 to resolve issues involving global search-and-replace (gsub) operations.
- Fix empty regular expression matches.
- Fix overflow exception of the modulo operator.
- Fix string multiplication by 0 (and less than 1) to emit empty string.
- Fix segfault when using libjq and threads.
- Fix constant folding of division and reminder with zero divisor.
- Fix error/0, error/1 to throw null error.
- Simpler and faster transpose.
- Simple and efficient implementation of walk/1.
- Remove deprecated filters leaf_paths, recurse_down.
Список пакетов
Container suse/sle-micro-rancher/5.3:latest
Container suse/sle-micro-rancher/5.4:latest
Container suse/sle-micro/5.5:latest
Container third-party/nvidia/driver:550-sles15.7
Container third-party/nvidia/driver:570-sles15.7
Container third-party/nvidia/driver:575-sles15.7
Container third-party/nvidia/driver:580-sles15.7
Container third-party/nvidia/driver:590-sles15.7
Container third-party/nvidia/driver:595-sles15.7
Container third-party/nvidia/driver:610-sles15.7
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS
SUSE Linux Enterprise Micro 5.3
SUSE Linux Enterprise Micro 5.4
SUSE Linux Enterprise Micro 5.5
SUSE Linux Enterprise Module for Basesystem 15 SP7
SUSE Linux Enterprise Server 15 SP4-LTSS
SUSE Linux Enterprise Server 15 SP5-LTSS
SUSE Linux Enterprise Server 15 SP6-LTSS
SUSE Linux Enterprise Server for SAP Applications 15 SP4
SUSE Linux Enterprise Server for SAP Applications 15 SP5
SUSE Linux Enterprise Server for SAP Applications 15 SP6
Ссылки
- Link for SUSE-SU-2026:4275-1
- E-Mail link for SUSE-SU-2026:4275-1
- SUSE Security Ratings
- SUSE Bug 1215737
- SUSE Bug 1218034
- SUSE Bug 1218038
- SUSE Bug 1238078
- SUSE Bug 1248600
- SUSE Bug 1262043
- SUSE Bug 1262072
- SUSE Bug 1265060
- SUSE Bug 1265061
- SUSE Bug 1265062
- SUSE Bug 1265070
- SUSE Bug 1265071
- SUSE Bug 1265075
- SUSE Bug 1265076
- SUSE Bug 1269220
- SUSE Bug 1269221
- SUSE Bug 1269390
Описание
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
Затронутые продукты
Ссылки
- CVE-2015-8863
- SUSE Bug 1014176
- SUSE Bug 976992
Описание
jq is a command-line JSON processor. Version 1.7 is vulnerable to heap-based buffer overflow. Version 1.7.1 contains a patch for this issue.
Затронутые продукты
Ссылки
- CVE-2023-50246
- SUSE Bug 1218034
Описание
jq is a command-line JSON processor. Version 1.7 is vulnerable to stack-based buffer overflow in builds using decNumber. Version 1.7.1 contains a patch for this issue.
Затронутые продукты
Ссылки
- CVE-2023-50268
- SUSE Bug 1218038
Описание
decNumberCopy in decNumber.c in jq through 1.7.1 does not properly consider that NaN is interpreted as numeric, which has a resultant stack-based buffer overflow and out-of-bounds write, as demonstrated by use of --slurp with subtraction, such as a filter of .-. when the input has a certain form of digit string with NaN (e.g., "1 NaN123" immediately followed by many more digits).
Затронутые продукты
Ссылки
- CVE-2024-53427
- SUSE Bug 1238078
Описание
A vulnerability was determined in jqlang jq up to 1.6. Impacted is the function run_jq_tests of the file jq_test.c of the component JSON Parser. Executing manipulation can lead to reachable assertion. The attack requires local access. The exploit has been publicly disclosed and may be utilized. Other versions might be affected as well.
Затронутые продукты
Ссылки
- CVE-2025-9403
- SUSE Bug 1248600
Описание
jq is a command-line JSON processor. Commits before 6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b contain a vulnerability where CLI input parsing allows validation bypass via embedded NUL bytes. When reading JSON from files or stdin, jq uses strlen() to determine buffer length instead of the actual byte count from fgets(), causing it to truncate input at the first NUL byte and parse only the preceding prefix. This enables an attacker to craft input with a benign JSON prefix before a NUL byte followed by malicious trailing data, where jq validates only the prefix as valid JSON while silently discarding the suffix. Workflows relying on jq to validate untrusted JSON before forwarding it to downstream consumers are susceptible to parser differential attacks, as those consumers may process the full input including the malicious trailing bytes. This issue has been patched by commit 6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b.
Затронутые продукты
Ссылки
- CVE-2026-33948
- SUSE Bug 1262043
- SUSE Bug 1265061
Описание
jq is a command-line JSON processor. Before commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784, jq used MurmurHash3 with a hardcoded, publicly visible seed (0x432A9843) for all JSON object hash table operations, which allowed an attacker to precompute key collisions offline. By supplying a crafted JSON object (~100 KB) where all keys hashed to the same bucket, hash table lookups degraded from O(1) to O(n), turning any jq expression into an O(n^2) operation and causing significant CPU exhaustion. This affected common jq use cases such as CI/CD pipelines, web services, and data processing scripts, and was far more practical to exploit than existing heap overflow issues since it required only a small payload. This issue has been patched in commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784.
Затронутые продукты
Ссылки
- CVE-2026-40164
- SUSE Bug 1262072
Описание
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
- SUSE Bug 1265060
Описание
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
- SUSE Bug 1265061
Описание
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
- SUSE Bug 1265062
Описание
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
- SUSE Bug 1265070
Описание
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
- SUSE Bug 1265071
Описание
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
- SUSE Bug 1265075
Описание
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
- SUSE Bug 1265076
Описание
jq is a command-line JSON processor. Prior to 1.8.2, comparing two sufficiently deeply nested arrays with the == operator exhausts the C stack on jq's ordinary command-line surface, resulting in denial of service via stack exhaustion (uncontrolled recursion). The crash occurs in jq's recursive structural comparison code, with the recursion repeating through jvp_array_equal() and jv_equal() in src/jv.c when comparing deeply nested arrays; a nearby sort comparator path through jv_cmp() in src/jv_aux.c overflows the stack at a larger nesting depth from the same missing recursion guard. Anyone running jq comparisons on attacker-controlled deeply nested JSON values, or embedding jq in a context where untrusted data can reach the == comparison path, is affected. This vulnerability is fixed in 1.8.2.
Затронутые продукты
Ссылки
- CVE-2026-47770
- SUSE Bug 1269221
Описание
jq is a command-line JSON processor. Prior to 1.8.2,` 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. When jv_load_file(raw=1) reads an attacker-controlled file, it repeatedly appends file chunks to the same jv string accumulator. Once jv_string_append_buf() returns jv_invalid_with_msg("String too long"), the raw-file loop does not stop. If the file contains at least one more byte, the next loop iteration appends a new chunk to an object that is already invalid. With assertions enabled this aborts in jvp_string_ptr(). With assertions disabled, the invalid object is interpreted as a string object and ASan reports heap-buffer-overflow. This vulnerability is fixed in 1.8.2.
Затронутые продукты
Ссылки
- CVE-2026-49839
- SUSE Bug 1269220
Описание
jq is a command-line JSON processor. Prior to 1.8.2, on 32bit system, jvp_string_append has a chance of integer/multiple overflowing and then causing a massive buffer overrun. This vulnerability is fixed in 1.8.2.
Затронутые продукты
Ссылки
- CVE-2026-54679
- SUSE Bug 1269390