CVE-2026-39979
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 43 - wyżej niż 43% wszystkich znanych CVE
Streszczenie
W bibliotece libjq (część narzędzia jq) w funkcji jv_parse_sized() występuje podatność na odczyt poza zakresem bufora. Podczas przetwarzania błędnego JSON-a w buforze niezakończonym znakiem NUL, funkcja formatująca błąd używa %s, które czyta dane aż do napotkania NUL-a, zamiast ograniczyć się do długości podanej przez wywołującego.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do ujawnienia danych z pamięci lub spowodowania awarii procesu, co stanowi ryzyko dla poufności i dostępności systemu.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę libjq do wersji zawierającej commit 2f09060afab23fe9390cce7cb860b10416e1bf5f lub nowszej. W przypadku braku możliwości aktualizacji, ogranicz dostęp do funkcji jv_parse_sized() dla niezaufanych danych wejściowych.
Oryginalny opis (angielski, źródło NVD)
jq is a command-line JSON processor. In commits before 2f09060afab23fe9390cce7cb860b10416e1bf5f, the jv_parse_sized() API in libjq accepts a counted buffer with an explicit length parameter, but its error-handling path formats the input buffer using %s in jv_string_fmt(), which reads until a NUL terminator is found rather than respecting the caller-supplied length. This means that when malformed JSON is passed in a non-NUL-terminated buffer, the error construction logic performs an out-of-bounds read past the end of the buffer. The vulnerability is reachable by any libjq consumer calling jv_parse_sized() with untrusted input, and depending on memory layout, can result in memory disclosure or process termination. The issue has been patched in commit 2f09060afab23fe9390cce7cb860b10416e1bf5f.

