Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft PST/OST/PAB with decreasing MV offsets
-
DeliveryDeliver file to victim pipeline
-
ExploitVictim parses file with libpff/pypff
-
ExecutionInteger underflow in get_multi_value()
-
PersistHeap out-of-bounds read
-
ImpactCrash and leak adjacent heap memory
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 | Requires the victim to open or process an attacker-crafted PST, OST, or PAB file using libpff (or its bindings pypff / the pffexport tool); the file must contain multi-value property entries of type PT_MV_STRING8, PT_MV_UNICODE, or PT_MV_BINARY whose stored offsets are non-monotonic (decreasing), which drives the integer underflow in libpff_record_entry_get_multi_value(). Per the CVSS vector this is a LOCAL vector (AV:L) with required passive user interaction (UI:P) and no authentication (PR:N), so exploitation is limited by the need to deliver a malicious file and have it parsed - it is not remote or zero-click. Realistic exposure is highest where untrusted PST/OST/PAB files are ingested automatically (DFIR, e-discovery, mail migration); the impact is bounded to a crash (DoS) plus disclosure of adjacent heap memory, not integrity compromise or code execution. |
| Impact | This is a moderate-severity, file-parsing memory-safety flaw whose real-world risk is bounded by its delivery model rather than its technical novelty. The supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H) tells a consistent story: exploitation is LOCAL and requires passive user interaction (a victim must open or process an attacker-supplied file), so there is no network-facing, zero-click exposure. No EPSS score and no CISA KEV entry were provided, and there is no KEV or POC flag in the input, so under the precision rules this is treated as 'no public exploit identified at time of analysis' - although a detailed third-party technical writeup (hackmd) and the exact vulnerable source lines are publicly referenced, which materially lowers the effort to reproduce. The impact mix is telling and internally consistent: VA:H (reliable crash / denial of service of libpff, pypff, or pffexport) with only VC:L (disclosure of adjacent heap memory, not full read primitive) and VI:N (no integrity impact), matching CWE-125 (out-of-bounds read) rather than a code-execution write primitive. Net: this is a genuine but lower-priority issue for most organizations - a crash-and-leak bug in a forensics/mail-parsing library, not a mass-exploitable RCE. It becomes meaningfully more important for operators who auto-ingest untrusted PST/OST/PAB files (e-discovery, DFIR, mail-migration pipelines), where attacker-controlled input reaches the parser automatically. |
| Exploit ScenarioDerived | An attacker crafts a malicious PST, OST, or PAB file whose multi-value property entries (PT_MV_STRING8, PT_MV_UNICODE, or PT_MV_BINARY) use decreasing, non-monotonic offsets, then delivers it to a victim (e.g., as a mailbox export submitted to a forensics or e-discovery pipeline). When the victim processes the file with libpff, pypff, or pffexport, the integer underflow in libpff_record_entry_get_multi_value() triggers a heap out-of-bounds read, crashing the tool and potentially leaking adjacent heap memory. No public exploit is flagged in the input, but a public technical writeup and the exact vulnerable code are referenced, lowering reproduction effort. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Heap out-of-bounds reads in libpff through 20260926 allow attackers to crash applications (denial of service) and disclose adjacent heap memory by delivering crafted PST, OST, or PAB files that contain multi-value properties with non-monotonic offsets. Exploitation requires the victim to open or process the malicious file with libpff, the pypff bindings, or the pffexport tool; the flaw is local (AV:L) with passive user interaction (UI:P) and no authentication required (PR:N). No public exploit code was identified at time of analysis, and the impact is bounded to denial of service and information disclosure-not code execution, integrity compromise, or remote exploitation.
RemediationAI
No vendor-released patch was identified at time of analysis. Until an update is available, avoid processing untrusted or unverified PST, OST, and PAB files with libpff, pypff, or pffexport. For automated ingestion pipelines (e.g., DFIR, e-discovery, mail migration), run parsing in a sandboxed, low-privilege environment or container to contain the crash and heap disclosure, though note that adjacent heap memory from the same process may still be exposed. Alternatively, validate or sanitize input files to reject those containing multi-value properties with non-monotonic offsets, or use a different parser that is not affected; both approaches have trade-offs, as file validation can be bypassed and switching parsers may lose compatibility or fidelity. Because exploitation requires the user to open a malicious file (AV:L, UI:P), user awareness training and email attachment scanning can reduce risk. Monitor the libyal project and VulnCheck advisory (https://www.vulncheck.com/advisories/libyal-libpff-through-20260926-heap-out-of-bounds-read-via-libpff-record-entry-get-multi-value) for a fixed release.
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
libpff is an open-source library from libyal for parsing Microsoft Outlook Personal Folders (PST), Offline Storage (OST), and Personal Address Book (PAB) files. The flaw is an integer underflow (CWE-125, out-of-bounds read) in libpff_record_entry_get_multi_value(), which computes the size of multi-value properties (PT_MV_STRING8, PT_MV_UNICODE, PT_MV_BINARY) by subtracting an offset from a running total. If the stored offsets are non-monotonic-each subsequent offset is smaller than the previous-the subtraction wraps around, producing an oversized or negative length that is then used as a read length, causing a heap out-of-bounds read. The affected code paths are in libpff_record_entry.c (lines 2825-2874) and libpff_multi_value.c (lines 207-271) at commit 03545511ab7a7a609e50ec715bdd3985c3be71c5. The issue affects the core libpff library as well as its Python bindings (pypff) and the pffexport command-line tool. According to the CPE string cpe:2.3:a:libyal:libpff:*:*:*:*:*:*:*:*, all versions of libpff up to and including 20260926 are affected. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N) confirms the local, no-authentication, passive-user-interaction profile and the limited confidentiality plus high availability impact.
Know when Libpff 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 file-parsing flaw needing a victim to process a crafted file (AV:L/UI:R), no auth (PR:N); out-of-bounds read leaks adjacent heap (C:L) and reliably crashes the parser (A:H), with no integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Libyal libpff through 20260926 contains an integer underflow in libpff_record_entry_get_multi_value() that allows attackers to trigger heap out-of-bounds reads via non-monotonic multi-value offsets. Attackers can craft PST, OST or PAB files with decreasing PT_MV_STRING8, PT_MV_UNICODE or PT_MV_BINARY offsets to crash libpff, pypff or pffexport and expose 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.
libpff_item_tree_create_node in libpff_item_tree.c in libpff before experimental-20180714 allows attackers to cause a de
The libpff_name_to_id_map_entry_read function in libpff_name_to_id_map.c in libyal libpff through 2018-04-28 allows remo
EUVD-2026-101226
GHSA-9f2v-576g-7mp5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB