CVE-2026-31971

HIGH CVSS 4.0: 7,1 EPSS 0.14%
Обновлено 19 марта 2026
Htslib
Параметр Значение
CVSS 7,1 (HIGH)
Уязвимые версии 1.22 — 1.22.2
Устранено в версии 1.21.1
Тип уязвимости CWE-121 (Переполнение буфера в стеке), CWE-1284, CWE-787 (Запись за пределами буфера), CWE-122 (Переполнение буфера в куче)
Поставщик Htslib
Публичный эксплойт Нет

HTSlib — это библиотека для чтения и записи форматов файлов биоинформатики. CRAM — это сжатый формат, в котором хранятся данные выравнивания последовательностей ДНК с использованием различных методов кодирования и сжатия. При чтении данных, закодированных с помощью метода BYTE_ARRAY_LEN, метод cram_byte_array_len_decode() не смог проверить, соответствует ли объем распаковываемых данных размеру выходного буфера, в котором они должны были храниться. В зависимости от считываемого ряда данных это может привести либо к куче, либо к переполнению стека байтами, контролируемыми злоумышленником.

В зависимости от потока данных это может привести либо к переполнению буфера кучи, либо к переполнению стека. Если пользователь откроет файл, созданный для использования этой проблемы, это может привести к сбою программы, перезаписи структур данных в куче или стеке способами, не ожидаемыми программой, или к изменению потока управления программой. Возможно, это можно будет использовать для выполнения произвольного кода.

Версии 1.23.1, 1.22.2 и 1.21.1 включают исправления этой проблемы. Для этой проблемы не существует решения.

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

HTSlib is a library for reading and writing bioinformatics file formats. CRAM is a compressed format which stores DNA sequence alignment data using a variety of encodings and compression methods. When reading data encoded using the `BYTE_ARRAY_LEN` method, the `cram_byte_array_len_decode()` failed to validate that the amount of data being unpacked matched the size of the output buffer where it was to be stored. Depending on the data series being read, this could result either in a heap or a stack overflow with attacker-controlled bytes. Depending on the data stream this could result either in a heap buffer overflow or a stack overflow. If a user opens a file crafted to exploit this issue it could lead to the program crashing, overwriting of data structures on the heap or stack in ways not expected by the program, or changing the control flow of the program. It may be possible to use this to obtain arbitrary code execution. Versions 1.23.1, 1.22.2 and 1.21.1 include fixes for this issue. There is no workaround for this issue.

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

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

Последствия

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

Строка CVSS v4.0

Уязвимые продукты 3

Конфигурация От (включительно) До (исключительно)
Htslib Htslib
cpe:2.3:a:htslib:htslib:*:*:*:*:*:*:*:*
1.21.1
Htslib Htslib
cpe:2.3:a:htslib:htslib:*:*:*:*:*:*:*:*
1.22 1.22.2
Htslib Htslib
cpe:2.3:a:htslib:htslib:1.23:*:*:*:*:*:*:*