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).
References
Configurations

Configuration 1 (hide)

cpe:2.3:a:jqlang:jq:*:*:*:*:*:*:*:*

History

26 Oct 2026, 18:10

Type Values Removed Values Added
Summary
  • (es) jq es un procesador JSON de línea de comandos. En la versión 1.8.1 y anteriores, cuando a decNumberFromString se le proporciona un literal numérico de INT_MAX-1 (2147483646) dígitos, la macro D2U() desborda durante la aritmética de enteros con signo. El valor negativo envuelto omite la comprobación del tamaño de la asignación de memoria dinámica (heap), hace que la función utilice un búfer de pila de 30 bytes y luego escribe ?715 millones de unidades de 16 bits (?1.4 GiB) en un desplazamiento de 1.43 GiB por debajo del marco de pila. El contenido escrito está totalmente controlado por el atacante (los dígitos decimales analizados, empaquetados 3 por unidad).

Information

Published : 2026-05-11 18:16

Updated : 2026-10-26 18:10


NVD link : CVE-2026-43894

Mitre link : CVE-2026-43894

CVE.ORG link : CVE-2026-43894


JSON object : View

Products Affected

jqlang

  • jq
CWE
CWE-190

Integer Overflow or Wraparound