CVE-2026-31970

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

HTSlib — это библиотека для чтения и записи форматов файлов биоинформатики. Файлы GZI используются для индексации блочно-сжатых файлов GZIP [BGZF]. В функции загрузки GZI, `bgzf_index_load_hfile()`, можно было вызвать целочисленное переполнение, приводящее к выделению буфера недостаточного или нулевого размера для хранения индекса.

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

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

Самый простой обходной путь — удалить все индексные файлы `.gzi` из ненадежных источников и использовать опцию `bgzip -r` для их воссоздания.

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

HTSlib is a library for reading and writing bioinformatics file formats. GZI files are used to index block-compressed GZIP [BGZF] files. In the GZI loading function, `bgzf_index_load_hfile()`, it was possible to trigger an integer overflow, leading to an under- or zero-sized buffer being allocated to store the index. Sixteen zero bytes would then be written to this buffer, and, depending on the result of the overflow the rest of the file may also be loaded into the buffer as well. If the function did attempt to load the data, it would eventually fail due to not reading the expected number of records, and then try to free the overflowed heap buffer. Exploiting this bug causes a heap buffer overflow. If a user opens a file crafted to exploit this issue, it could lead to the program crashing, or overwriting of data and heap structures in ways not expected by 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. The easiest work-around is to discard any `.gzi` index files from untrusted sources, and use the `bgzip -r` option to recreate them.

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

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

Последствия

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

Строка CVSS v4.0

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

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