{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-116841","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","state":"PUBLISHED","assignerShortName":"VulnCheck","dateReserved":"2026-10-27T00:10:22.403Z","datePublished":"2026-10-27T00:34:00.513Z","dateUpdated":"2026-10-27T00:34:00.513Z"},"containers":{"cna":{"providerMetadata":{"orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","shortName":"VulnCheck","dateUpdated":"2026-10-27T00:34:00.513Z"},"datePublic":"2026-10-22T00:00:00.000Z","title":"DevilutionX 1.4.0 through 1.5.5 Out-of-Bounds Read via libmpq Hash Table Lookup","descriptions":[{"lang":"en","value":"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."}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Out-of-bounds Read","cweId":"CWE-125","type":"CWE"}]}],"affected":[{"vendor":"diasurgical","product":"DevilutionX","packageURL":"pkg:github/diasurgical/DevilutionX","defaultStatus":"unaffected","versions":[{"version":"1.4.0","status":"affected","versionType":"semver","lessThanOrEqual":"1.5.5"}]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","attackVector":"LOCAL","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"PASSIVE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":6.8,"baseSeverity":"MEDIUM"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH","baseScore":5.5,"baseSeverity":"MEDIUM"}}],"references":[{"url":"https://github.com/diasurgical/DevilutionX/issues/8758","tags":["issue-tracking"]},{"url":"https://github.com/diasurgical/DevilutionX/pull/8482","tags":["patch","issue-tracking"]},{"url":"https://github.com/diasurgical/libmpq/blob/b78d66c6fee6a501cc9b95d8556a129c68841b05/libmpq/mpq.c#L740","tags":["technical-description"]},{"url":"https://github.com/diasurgical/DevilutionX/blob/7223eeac9e8274fbf665b4de86fda26d3b22c52f/3rdParty/libmpq/CMakeLists.txt","tags":["technical-description"]},{"url":"https://hackmd.io/@haindpwn/devilutionx-libmpq-hash-block-table-oob","tags":["technical-description"]},{"name":"VulnCheck Advisory: DevilutionX 1.4.0 through 1.5.5 Out-of-Bounds Read via libmpq Hash Table Lookup","tags":["third-party-advisory"],"url":"https://www.vulncheck.com/advisories/devilutionx-1.4.0-through-1.5.5-out-of-bounds-read-via-libmpq-hash-table-lookup"}],"credits":[{"lang":"en","value":"HaiND from the Post and Telecommunication Institute of Technology","type":"finder"}],"x_generator":{"engine":"vulncheck-endgame"}}}}