Out-of-bounds read in DevilutionX libmpq hash table lookup
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- No fix listed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-125 and the CVSS impact.
Summary
DevilutionX 1.4.0 through 1.5.5 bundles libmpq, which contains an out-of-bounds read in its hash table lookup. The libmpq__file_number_from_hash function uses block_table_index values without checking them, so it reads heap memory past mpq_map (CWE-125). A local attacker can place a crafted .mpq archive, such as a mod, in the game's data path, and user interaction is needed to load it. The result is a crash of the game.
Written with Claude Haiku 5.5 from the sources below · 2026-11-05
Description from the CNA
DevilutionX 1.4.0 through 1.5.5 contains an out-of-bounds read vulnerability in the bundled libmpq libmpq__file_number_from_hash function that allows attackers to read heap memory via unchecked block_table_index values. Attackers can place a crafted .mpq archive in the game's data path, such as a mod, to trigger reads past mpq_map and crash the game.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| diasurgical | DevilutionX | 1.4.0 – 1.5.5 | — | No fix listed | CNA |
- DevilutionX Vendordiasurgical Affected 1.4.0 – 1.5.5 Fixed in — No fix listed CNA
Remediation
The sources list no fixed version for DevilutionX.
Written with Claude Haiku 5.5 from the sources below · 2026-11-05
Timeline
- 2026-10-27 Threatist record created from CVE-2026-116841
- 2026-10-27 Alias added: GHSA-mqmm-g9r5-977r
- 2026-10-27 Priority changed: MEDIUM → LOW
- 2026-11-05 CISA SSVC decision points changed
- 2026-11-05 Priority changed: LOW → MEDIUM
References
Other 4
- https://github.com/diasurgical/DevilutionX/issues/8758
- https://github.com/diasurgical/libmpq/blob/b78d66c6fee6a501cc9b95d8556a129c68841b05/libmpq/mpq.c#L740
- https://github.com/diasurgical/DevilutionX/blob/7223eeac9e8274fbf665b4de86fda26d3b22c52f/3rdParty/libmpq/CMakeLists.txt
- https://hackmd.io/@haindpwn/devilutionx-libmpq-hash-block-table-oob
More diasurgical vulnerabilities
- TI-2026-81008 Heap buffer overflow in DevilutionX when opening crafted MPQ archives CVSS 4.0MEDIUM 6.9
Sources
- CVE-2026-116841 · CVE Program
- CVE-2026-116841 · NVD
- FIRST EPSS
- GHSA-mqmm-g9r5-977r · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences