CVE-2017-9052
CriticalSummary
An issue was discovered in the libdwarf library related to a heap-based buffer over-read in the dwarf_formsdata() function. This problem arises from a failure to check if a pointer is in bounds in several places in this function and a failure in a check in the dwarf_attr_list() function.
Risk Assessment
The buffer over-read may lead to the disclosure of sensitive data in memory, posing a security risk to applications using this library.
Recommendation
It is recommended to update the libdwarf library to the latest version to mitigate this vulnerability and to conduct a code audit to identify potential areas susceptible to similar issues.
Other vulnerabilities in libdwarf
See all- CVE-2016-5041High
The dwarf_macro5.c file in libdwarf before version 20160923 contains a vulnerability that allows remote attackers to cause a denial of service (NULL pointer dereference) via a debugging information entry using DWARF5 without a DW_AT_name.
- CVE-2016-9276High
The dwarf_get_aranges_list function in dwarf_arrange.c in Libdwarf before version 20161124 allows remote attackers to cause a denial of service via an out-of-bounds read.
- CVE-2016-9275High
Heap-based buffer overflow in the _dwarf_skim_forms function in libdwarf/dwarf_macro5.c in Libdwarf before version 20161124 can be exploited by remote attackers.
- CVE-2016-5044High
The WRITE_UNALIGNED function in dwarf_elf_access.c in libdwarf before version 20160923 allows remote attackers to cause a denial of service (out-of-bounds write and crash) via a crafted DWARF section.
- CVE-2016-5043High
The dwarf_dealloc function in libdwarf before version 20160923 allows remote attackers to cause a denial of service (out-of-bounds read and crash) via a crafted DWARF section.
- CVE-2016-5042High
The dwarf_get_aranges_list function in libdwarf before version 20160923 allows remote attackers to cause a denial of service (infinite loop and crash) via a crafted DWARF section.
- CVE-2016-5040High
libdwarf before version 20160923 allows remote attackers to cause a denial of service (out-of-bounds read and crash) via a large length value in a compilation unit header.
- CVE-2016-5039High
The get_attr_value function in libdwarf before 20160923 allows remote attackers to cause a denial of service (out-of-bounds read) via a crafted object with all-bits on.
- CVE-2016-5038High
The dwarf_get_macro_startend_file function in libdwarf before version 20160923 allows remote attackers to cause a denial of service (out-of-bounds read) via a crafted string offset for .debug_str.
- CVE-2016-5036High
The dump_block function in print_sections.c in libdwarf before version 20160923 allows remote attackers to cause a denial of service (out-of-bounds read) via crafted frame data.
Original NVD description (English source)
An issue, also known as DW201703-006, was discovered in libdwarf 2017-03-21. A heap-based buffer over-read in dwarf_formsdata() is due to a failure to check a pointer for being in bounds (in a few places in this function) and a failure in a check in dwarf_attr_list().

