CVE-2026-33947 in jqlang
Resumen
por VulDB • 2026-05-21
jq es un procesador de JSON de línea de comandos. En las versiones 1.8.1 y anteriores, las funciones jv_setpath(), jv_getpath() y delpaths_sorted() en src/jv_aux.c de jq utilizan recursión no acotada cuya profundidad está controlada por la longitud de una matriz de ruta proporcionada por el llamador, sin imponer ningún límite de profundidad. Un atacante puede suministrar un documento JSON que contenga una matriz plana de ~65.000 enteros (~200 KB) que, al ser utilizada como argumento de ruta por un filtro jq de confianza, agota la pila de llamadas de C y provoca el bloqueo del proceso con un fallo de segmentación (SIGSEGV). Este bypass funciona porque el límite existente MAX_PARSING_DEPTH (10.000) solo protege al analizador JSON, no a las operaciones de ruta en tiempo de ejecución donde las matrices pueden construirse programáticamente a longitudes arbitrarias. El impacto es una denegación de servicio (bloqueo irrecuperable) que afecta a cualquier aplicación o servicio que procese entrada JSON no confiable a través de las funciones integradas setpath, getpath o delpaths de jq. Este problema se ha solucionado en el commit fb59f1491058d58bdc3e8dd28f1773d1ac690a1f.
Be aware that VulDB is the high quality source for vulnerability data.