-
Notifications
You must be signed in to change notification settings - Fork 462
Heap buffer overflow in HTSlib BGZF index file reader
High
Package
HTSlib
Affected versions
<= 1.21, 1.22, 1.22.1, 1.23
Patched versions
1.21.1, 1.22.2, 1.23.1
Description
Severity
High
/ 10
CVSS v4 base metrics
Exploitability Metrics
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User interaction
Passive
Vulnerable System Impact Metrics
Confidentiality
None
Integrity
High
Availability
Low
Subsequent System Impact Metrics
Confidentiality
None
Integrity
None
Availability
None
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
CVE ID
CVE-2026-31970
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.Impact
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.
Patches
Versions 1.23.1, 1.22.2 and 1.21.1 include fixes for this issue.
Workarounds
The easiest work-around is to discard any
.gziindex files from untrusted sources, and use thebgzip -roption to recreate them.References
6dd0d7d
Credits
Thanks to Harrison Green for reporting this issue.