Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious ESE/EDB database
-
DeliveryDeliver file to analyst or parsing pipeline
-
ExploitVictim processes file with esedbexport
-
ExecutionTrigger OOB read in libesedb_record_get_multi_value()
-
ImpactCrash tool or leak ~32 KiB heap
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a victim process an attacker-controlled ESE/EDB database file with esedbexport (or another libesedb consumer) where the multi-value record parsing path reaches libesedb_record_get_multi_value(); the trigger is a crafted, unbounded multi-value offset table. Limiting factors: the CVSS 4.0 vector is AV:L with UI:P, so this is NOT remotely reachable - an attacker must get the malicious file onto a system and have a user or automated job parse it (passive user interaction / file-processing step). There is no authentication-bypass or network service exposure; risk is confined to workflows that parse untrusted ESE/EDB inputs. Impact is bounded to a crash and disclosure of up to about 32 KiB of adjacent heap memory, not code execution. |
| Impact | This is a genuine but moderate-priority issue, not a top-tier emergency. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H, score 6.9 MEDIUM) and the CWE-125 classification agree: this is a local, file-driven out-of-bounds READ, not remote code execution. The dominant impact is availability (VA:H, application crash of esedbexport) with only low confidentiality exposure (VC:L, up to ~32 KiB of adjacent heap). Public exploit code exists (a hackmd write-up and a VulnCheck advisory), which raises practical risk and lowers the barrier to reproduction, but there is NO CISA KEV listing and no EPSS score was provided, so there is no evidence of active, widespread exploitation - exploitation is opportunistic/local rather than internet-facing. The key limiting signal is AV:L combined with UI:P (Passive): an attacker cannot reach this remotely; a victim must process an attacker-supplied malicious ESE/EDB database with esedbexport. For most organizations the realistic worst case is a crash or limited heap-memory leak during forensic/offline parsing of untrusted files, which is why the signals converge on MEDIUM rather than HIGH despite the public POC. |
| Exploit ScenarioDerived | An analyst or automated DFIR pipeline runs esedbexport against an ESE/EDB database file that was supplied or planted by an attacker (e.g., pulled from a compromised host or submitted as evidence). The crafted file carries an unbounded multi-value offset table that drives libesedb_record_get_multi_value() to read past buffer bounds, crashing the tool or leaking up to ~32 KiB of adjacent heap memory into output. A public POC/write-up exists, so reliable reproduction is straightforward for an attacker. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Heap out-of-bounds read in libyal libesedb (through 20260704, all versions per the wildcard CPE) lets an attacker who supplies a crafted ESE/EDB database file to a libesedb consumer such as esedbexport cause the parsing process to crash or to disclose roughly 32 KiB of adjacent heap memory through libesedb_record_get_multi_value(). Publicly available exploit code exists, but there is no indication of confirmed active exploitation (not in CISA KEV), and the CVSS 4.0 vector (AV:L, UI:P) means the issue is not remotely reachable: an attacker must first place the malicious file on a target system and get a user or an automated job to parse it. Impact is bounded to denial of service and limited heap information disclosure - not code execution - so this is a genuine but moderate-priority issue for workflows that process untrusted ESE databases.
RemediationAI
No vendor-released patch has been identified at time of analysis, and the referenced GitHub link points at the vulnerable source rather than a fix commit or tagged release, so no exact patched version can be cited here. Track the upstream repository (https://github.com/libyal/libesedb) and the VulnCheck advisory (https://www.vulncheck.com/advisories/libyal-libesedb-through-20260704-heap-out-of-bounds-read-via-libesedb-record-get-multi-value) for an updated release or commit, and treat the public exploit write-up (https://hackmd.io/@haind-pwn/libesedb-multi-value-offset-table-oob-read) as confirmation that trigger files are easy to produce. Until a fix lands, the most effective compensating control is to never run esedbexport or any libesedb-based parser on untrusted ESE/EDB files outside a disposable sandbox or container with a restrictive memory limit and no access to sensitive host data - this trades convenience for containment and directly mitigates both the crash (DoS) and the heap-disclosure impact. Run parsing jobs as an unprivileged, isolated account (an OOB read leaks only memory belonging to that process, so least privilege limits what can be exposed) and, where the workflow permits, pre-screen or reject EDB inputs from untrusted sources; note that this sacrifices the ability to analyze unknown databases. Building libesedb with ASan or hardened allocators can convert silent leaks into loud failures for detection, but does not by itself prevent the read; because the flaw is confined to a read path with no code-execution primitive, these containment measures are proportionate and there is no need for network-level blocking or authentication changes.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libesedb is libyal's cross-platform, open-source library for parsing the Extensible Storage Engine (ESE) database format, the on-disk format used by Microsoft products such as Active Directory's ntds.dit, Exchange, and Windows Search indices; the bundled esedbexport utility extracts tables and records from those files. Multi-value columns in ESE store their values as a table of offsets into a value buffer, and the function libesedb_record_get_multi_value() (libesedb/libesedb_record.c, roughly lines 3776-3830 in commit cf49b6d4) walks that offset table without validating that each offset and length stay within the allocated multi-value buffer. Because a crafted EDB file can declare an offset table whose entries point beyond the buffer, the code performs a heap out-of-bounds read classified as CWE-125, leaking up to about 32 KiB of adjacent heap memory into the parsed output or crashing the process when it hits an unmapped page. This is a read primitive only: there is no write, so the OOB access cannot be leveraged directly for memory corruption or code execution, and the attack requires local delivery of the malicious database plus a parsing step (passive user interaction) by the victim.
Know when Libesedb gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
Local because the attacker must supply a file (AV:L) parsed by the victim (UI:R); unauthenticated (PR:N); low heap disclosure (C:L) and crash (A:H), no integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Libyal libesedb through 20260704 contains a heap out-of-bounds read vulnerability in libesedb_record_get_multi_value() that allows attackers to read past buffers via unbounded multi-value offset tables. Attackers can supply a crafted ESE/EDB database processed by esedbexport to crash the application or expose up to about 32 KiB of adjacent heap memory.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
The libesedb_key_append_data function in libesedb_key.c in libesedb through 2018-04-01 allows remote attackers to cause
The libesedb_catalog_definition_read function in libesedb_catalog_definition.c in libesedb through 2018-04-01 allows rem
The libesedb_page_read_tags function in libesedb_page.c in libesedb through 2018-04-01 allows remote attackers to cause
The libesedb_page_read_values function in libesedb_page.c in libesedb through 2018-04-01 allows remote attackers to caus
EUVD-2026-102274
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB