CVE-2026-39956

MEDIUM CVSS 3.1: 6,1 EPSS 0.01%
Обновлено 17 апреля 2026
jq
Параметр Значение
CVSS 6,1 (MEDIUM)
Тип уязвимости CWE-125 (Чтение за пределами буфера), CWE-843 (Смешение типов), CWE-476 (Разыменование нулевого указателя)
Поставщик jq
Публичный эксплойт Нет

jq — это процессор JSON командной строки. В коммитах после 69785bf77f86e2ea1b4a20ca86775916889e91c9 встроенная в jq src/builtin.c функция _strindices передает свои аргументы непосредственно в jv_string_indexes(), не проверяя, являются ли они строками, а jv_string_indexes() в src/jv.c полагается исключительно на Assert(). проверки, которые удалены в сборках выпуска, скомпилированных с -DNDEBUG. Это позволяет злоумышленнику тривиально аварийно завершить работу jq с помощью ввода типа _strindices(0) и, создав числовое значение, битовый шаблон которого соответствует выбранному указателю, добиться контролируемого разыменования указателя и ограниченного примитива чтения/проверки памяти.

Любое развертывание, которое оценивает ненадежные фильтры jq по сравнению со сборкой выпуска, уязвимо. Эта проблема исправлена ​​в коммите fdf8ef0f0810e3d365cdd5160de43db46f57ed03.

Показать оригинальное описание (EN)

jq is a command-line JSON processor. In commits after 69785bf77f86e2ea1b4a20ca86775916889e91c9, the _strindices builtin in jq's src/builtin.c passes its arguments directly to jv_string_indexes() without verifying they are strings, and jv_string_indexes() in src/jv.c relies solely on assert() checks that are stripped in release builds compiled with -DNDEBUG. This allows an attacker to crash jq trivially with input like _strindices(0), and by crafting a numeric value whose IEEE-754 bit pattern maps to a chosen pointer, achieve a controlled pointer dereference and limited memory read/probe primitive. Any deployment that evaluates untrusted jq filters against a release build is vulnerable. This issue has been patched in commit fdf8ef0f0810e3d365cdd5160de43db46f57ed03.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Требуется
Нужно действие пользователя

Последствия

Конфиденциальность
Низкое
Частичная утечка данных
Целостность
Нет
Нет модификации данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1