Skip to main content

libdwarf CVE-2026-116732

| EUVDEUVD-2026-110480 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-26 VulnCheck GHSA-8mx3-4rwx-rhjv
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted object file to victim
  2. Delivery
    Victim's libdwarf consumer parses .debug_addr
  3. Exploit
    Non-zero offset bypasses unit-length check
  4. Execution
    dwarf_debug_addr_by_index reads past heap buffer
  5. Impact
    Disclose adjacent heap bytes or crash consumer

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 a libdwarf-based consumer (version ≤2.3.3) to parse an attacker-crafted object file whose .debug_addr section specifies a non-zero table starting offset, which dwarf_debug_addr_table() fails to include when validating the section unit length; dwarf_debug_addr_by_index() then reads beyond the heap buffer. Limiting factors: the attack vector is local (AV:L) and demands user interaction (UI:P) - a victim or automated pipeline must actually process the malicious file - and impact is bounded to small heap-memory disclosure and denial of service, with no code execution or integrity impact indicated. There is no remote network path and no privilege required on the attacker side, but the flaw is only reachable through the .debug_addr parsing code path.

Impact

This is a genuine but low-priority memory-safety defect, not an urgent emergency. The input CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VC:L/VI:N/VA:L) describes a local, low-complexity flaw that requires passive user interaction - a victim must run a libdwarf-based consumer against an attacker-supplied object file - and yields only limited confidentiality (adjacent heap-byte disclosure) and limited availability (consumer crash) impact, consistent with the 4.8 score. The EPSS score is very low (0.13%, 3rd percentile) and there is no CISA KEV listing, so there is no evidence of active or widespread exploitation. The vuln.today decision label is 'this_month' (not act_now/emergency), aligning with the low-impact, local, UI-dependent profile. Reported by VulnCheck with a vendor patch available and a technical write-up published, so the mechanism is well understood. These signals are mutually consistent: moderate severity, low exploitation probability, no active exploitation - patch on a normal monthly cadence rather than treating it as a fire. One nuance: the root cause (omitting the table starting offset when validating .debug_addr unit length) is confirmed by the commit diff, which adds overflow checks and an exact end-offset equality check.

Exploit ScenarioDerived

An attacker crafts a malicious object file whose .debug_addr section declares a non-zero table starting offset, then gets a victim to process it with a tool built on libdwarf (e.g., a debugger, symbolizer, or binary-analysis utility). When dwarf_debug_addr_table() validates the unit length without accounting for that starting offset, dwarf_debug_addr_by_index() reads past the heap buffer, leaking adjacent heap bytes to the consumer or crashing it. A public PoC reference exists (hackmd write-up and GitHub issue #336); it is not verified as working exploit code, and the local vector plus required user interaction make this opportunistic rather than mass-exploitable.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Heap out-of-bounds read in libdwarf through 2.3.3's .debug_addr parsing path: dwarf_debug_addr_table() validates the unit length without including the table's starting offset, so an object file whose .debug_addr section declares a non-zero table offset slips past the size check and a later dwarf_debug_addr_by_index() call reads past the heap buffer. Only libdwarf-based consumers that actually parse an attacker-supplied object file are affected (local attack vector, user interaction required), and the outcome is bounded to disclosure of adjacent heap bytes or a crash. No confirmed active exploitation (not in CISA KEV) and EPSS is only 0.13% (3rd percentile); a public write-up and PoC reference exist but are not verified as working exploit code, and an upstream fix commit is available.

RemediationAI

Patch status per the supplied data: vendor patch available via upstream commit 71f04013ddc2a3c88b9e25a4162ee2824741b593 (https://github.com/davea42/libdwarf-code/commit/71f04013ddc2a3c88b9e25a4162ee2824741b593), which is the authoritative fix referenced by the CVE record; an upstream fix is available as a commit and a released patched version number is not independently confirmed in this dataset, so downstream consumers embedding libdwarf through 2.3.3 should rebuild against corrected source rather than assume a specific tag. Track the upstream issue https://github.com/davea42/libdwarf-code/issues/336 and the VulnCheck advisory https://www.vulncheck.com/advisories/libdwarf-through-2.3.3-heap-out-of-bounds-read-via-dwarf-debug-addr-table for release tagging. Until a patched build is deployed, the exposure is governed entirely by who can get a crafted object file in front of a libdwarf consumer: because the assessed vector is local with required user interaction, the practical compensating control is to process untrusted or third-party object files and debug data only inside disposable, memory-isolated sandboxes, with the trade-off that legitimate analysis of untrusted binaries becomes slower and constrained; there is no network-facing mitigation to apply because no remote path exists.

Affected VersionsENISA

libdwarf 0 ≤2.3.3

Affected Packages

euvd libdwarf no fix

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

The flaw is a classic CWE-125 out-of-bounds read in libdwarf's DWARF section parser. The .debug_addr section holds a table of addresses referenced by index; dwarf_debug_addr_table() in src/lib/libdwarf/dwarf_debugaddr.c computes the end of a unit as arealen + offset_size + exten_size and compares that against the section size, but omits dw_section_offset, the table's starting offset within the section. When a crafted object file places the table at a non-zero offset, the arithmetic undershoots the true end, validation passes, and dwarf_debug_addr_by_index() later indexes past the end of the heap allocation, returning adjacent heap bytes to the caller or triggering a crash. The upstream commit 71f04013ddc2a3c88b9e25a4162ee2824741b593 replaces the check with an overflow-safe net_end_offset that includes dw_section_offset, adds explicit wrap-around guards (net_end_offset < dw_section_offset / arealen / offset_size / exten_size), and cross-checks the computed end against offset_one_past_end before proceeding. The trigger is entirely within the .debug_addr parsing code path; no other component is implicated, and the vulnerability class yields read-only impact with no write primitive.

Know when Libdwarf 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

Vendor (VulnCheck) PRIMARY 4.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.4 MEDIUM

Reachable only by processing a crafted local file, so AV:L and UI:R; the out-of-bounds read discloses limited heap bytes (C:L) and can crash the consumer (A:L), with no integrity impact.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
Red Hat 4.4 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

libdwarf through 2.3.3 contains a heap out-of-bounds read vulnerability in dwarf_debug_addr_table() that omits the table starting offset when validating .debug_addr unit length. Attackers can supply a crafted object file with a non-zero offset table, causing dwarf_debug_addr_by_index() to read past the heap buffer, disclosing adjacent heap bytes or crashing consumers.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
DWARF-parsing library embedded in debuggers and binary-analysis tooling, not every host
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2016-9558 CRITICAL POC
9.8 Feb 28

(1) libdwarf/dwarf_leb.c and (2) dwarfdump/print_frames.c in libdwarf before 20161124 allow remote attackers to have uns

CVE-2022-34299 HIGH POC
8.1 Jun 23

There is a heap-based buffer over-read in libdwarf 0.4.0. Rated high severity (CVSS 8.1), this vulnerability is remotely

CVE-2016-5042 HIGH POC
7.5 Feb 17

The dwarf_get_aranges_list function in libdwarf before 20160923 allows remote attackers to cause a denial of service (in

CVE-2022-32200 HIGH POC
7.8 Jun 02

libdwarf 0.4.0 has a heap-based buffer over-read in _dwarf_check_string_valid in dwarf_util.c. Rated high severity (CVSS

CVE-2016-5044 HIGH POC
7.5 Feb 17

The WRITE_UNALIGNED function in dwarf_elf_access.c in libdwarf before 20160923 allows remote attackers to cause a denial

CVE-2016-5043 HIGH POC
7.5 Feb 17

The dwarf_dealloc function in libdwarf before 20160923 allows remote attackers to cause a denial of service (out-of-boun

CVE-2016-5040 HIGH POC
7.5 Feb 17

libdwarf before 20160923 allows remote attackers to cause a denial of service (out-of-bounds read and crash) via a large

CVE-2016-5039 HIGH POC
7.5 Feb 17

The get_attr_value function in libdwarf before 20160923 allows remote attackers to cause a denial of service (out-of-bou

CVE-2016-5038 HIGH POC
7.5 Feb 17

The dwarf_get_macro_startend_file function in dwarf_macro5.c in libdwarf before 20160923 allows remote attackers to caus

CVE-2016-5036 HIGH POC
7.5 Feb 17

The dump_block function in print_sections.c in libdwarf before 20160923 allows remote attackers to cause a denial of ser

CVE-2016-5041 HIGH POC
7.5 Apr 10

dwarf_macro5.c in libdwarf before 20160923 allows remote attackers to cause a denial of service (NULL pointer dereferenc

CVE-2016-8680 MEDIUM POC
6.5 Feb 15

The _dwarf_get_abbrev_for_code function in dwarf_util.c in libdwarf 20161001 and earlier allows remote attackers to caus

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy