CVE-2026-31966
CVE-2026-31966 is a critical-severity vulnerability in Htslib with a CVSS 3.x base score of 9.1. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-125.
Key facts
- Severity: Critical (CVSS 3.x base score 9.1)
- CVSS v4: 6.9
- EPSS exploit prediction: 1% (40th percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2026-12936
- Weakness: CWE-125
- Affected product: Htslib
- Published:
- Last modified:
Description
HTSlib is a library for reading and writing bioinformatics file formats. CRAM is a compressed format which stores DNA sequence alignment data. As one method of removing redundant data, CRAM uses reference-based compression so that instead of storing the full sequence for each alignment record it stores a location in an external reference sequence along with a list of differences to the reference at that location as a sequence of "features". When decoding CRAM records, the reference data is stored in a char array, and parts matching the alignment record sequence are copied over as necessary. Due to insufficient validation of the feature data series, it was possible to make the `cram_decode_seq()` function copy data from either before the start, or after the end of the stored reference either into the buffer used to store the output sequence for the cram record, or into the buffer used to build the SAM `MD` tag. This allowed arbitrary data to be leaked to the calling function. This bug may allow information about program state to be leaked. It may also cause a program crash through an attempt to access invalid memory. Versions 1.23.1, 1.22.2 and 1.21.1 include fixes for this issue. There is no workaround for this issue.
Frequently asked questions
- What is CVE-2026-31966?
- HTSlib is a library for reading and writing bioinformatics file formats. CRAM is a compressed format which stores DNA sequence alignment data. As one method of removing redundant data, CRAM uses reference-based compression so that instead of storing the full sequence for each alignment record it stores a location in an external reference sequence along with a list of differences to the reference at that location as a sequence of "features". When decoding CRAM records, the reference data is stored in a char array, and parts matching the alignment record sequence are copied over as necessary. Due to insufficient validation of the feature data series, it was possible to make the `cram_decode_seq()` function copy data from either before the start, or after the end of the stored reference either into the buffer used to store the output sequence for the cram record, or into the buffer used to build the SAM `MD` tag. This allowed arbitrary data to be leaked to the calling function. This bug may allow information about program state to be leaked. It may also cause a program crash through an attempt to access invalid memory. Versions 1.23.1, 1.22.2 and 1.21.1 include fixes for this issue. There is no workaround for this issue.
- How severe is CVE-2026-31966?
- CVE-2026-31966 has a CVSS 3.x base score of 9.1, rated critical severity. It is exploitable over network with low attack complexity, requires no privileges and no user interaction. Impact on confidentiality is high, integrity none, and availability high.
- Is CVE-2026-31966 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 1% (40th percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2026-31966?
- CVE-2026-31966 primarily affects Htslib. In total, 2 product configurations (CPEs) are listed as vulnerable; see the affected-products list for the exact versions.
- How do I fix CVE-2026-31966?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround. Given its critical severity, prioritise patching exposed systems.
- Does CVE-2026-31966 have an EU (EUVD) identifier?
- Yes. CVE-2026-31966 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2026-12936.
- When was CVE-2026-31966 published?
- CVE-2026-31966 was published on 2026-03-18 and last updated on 2026-06-17.
References
- https://github.com/samtools/htslib/commit/22ec5230ef95769ab009420da69568c7e530af28
- https://github.com/samtools/htslib/commit/2a45eb129d703ad27f9fabc8169f0e94d3c69fa3
- https://github.com/samtools/htslib/commit/4a5ef25eb1fb3d64438103316fffe423b2c3f5f4
- https://github.com/samtools/htslib/security/advisories/GHSA-5cj8-mj52-8vp3
Affected products (2)
- cpe:2.3:a:htslib:htslib:*:*:*:*:*:*:*:*
- cpe:2.3:a:htslib:htslib:1.23:*:*:*:*:*:*:*
More vulnerabilities in Htslib
- CVE-2018-13845 — Critical (CVSS 9.8): An issue has been found in HTSlib 1.8. It is a buffer over-read in sam_parse1 in sam.c.
- CVE-2017-1000206 — Critical (CVSS 9.8): samtools htslib library version 1.4.0 and earlier is vulnerable to buffer overflow in the CRAM rANS codec resulting in…
- CVE-2026-31967 — Critical (CVSS 9.1): HTSlib is a library for reading and writing bioinformatics file formats. CRAM is a compressed format which stores DNA…
- CVE-2026-31962 — High (CVSS 8.8): HTSlib is a library for reading and writing bioinformatics file formats. CRAM is a compressed format which stores DNA…
- CVE-2020-36403 — High (CVSS 8.8): HTSlib through 1.10.2 allows out-of-bounds write access in vcf_parse_format (called from vcf_parse and vcf_read).
- CVE-2026-31965 — High (CVSS 8.2): HTSlib is a library for reading and writing bioinformatics file formats. CRAM is a compressed format which stores DNA…
Other CWE-125 (Out-of-bounds Read) vulnerabilities
- CVE-2026-24826 — Critical (CVSS 10.0): Out-of-bounds Write, Divide By Zero, NULL Pointer Dereference, Use of Uninitialized Resource, Out-of-bounds Read,…
- CVE-2024-22004 — Critical (CVSS 10.0): Due to length check, an attacker with privilege access on a Linux Nonsecure operating system can trigger a…
- CVE-2021-41556 — Critical (CVSS 10.0): sqclass.cpp in Squirrel through 2.2.5 and 3.x through 3.1 allows an out-of-bounds read (in the core interpreter) that…
- CVE-2021-21777 — Critical (CVSS 10.0): An information disclosure vulnerability exists in the Ethernet/IP UDP handler functionality of EIP Stack Group OpENer…
- CVE-2017-14451 — Critical (CVSS 10.0): An exploitable out-of-bounds read vulnerability exists in libevm (Ethereum Virtual Machine) of CPP-Ethereum. A…
- CVE-2013-0767 — Critical (CVSS 10.0): The nsSVGPathElement::GetPathLengthScale function in Mozilla Firefox before 18.0, Firefox ESR 10.x before 10.0.12 and…