CVE-2020-27545 (published 2023-04-16T00:15Z)

libdwarf before 20201017 has a one-byte out-of-bounds read because of an invalid pointer dereference via an invalid line table in a crafted object.

CVSS v3 base score: 6.5, MEDIUM (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H)

Weakness information:
cwe_id: CWE-763
cwe_name: Release of Invalid Pointer or Reference
description: The product attempts to return a memory resource to the system, but it calls the wrong release function or calls the appropriate release function incorrectly.
extended_description: 
            This weakness can take several forms, such as:
               
                  The memory was allocated, explicitly or implicitly, via one memory management method and deallocated using a different, non-compatible function (CWE-762).
                  The function calls or memory management routines chosen are appropriate, however they are used incorrectly, such as in CWE-761.
               
         
         

Fix information:
repo_url: https://github.com/davea42/libdwarf-code
commit_details: repo_url: https://github.com/davea42/libdwarf-code
author: David Anderson
author_date: 2020-10-17 12:40:58-07:00
msg: modified:   configure
	modified:   configure.ac now version 20201017

updated version string libdwarf_version.h
and regenerated files that have the version
string.
	modified:   dwarfdump/dwarf_names.c
	modified:   dwarfdump/dwarf_names.h
	modified:   dwarfdump/dwarfdump-ta-ext-table.h
	modified:   dwarfdump/dwarfdump-ta-table.h
	modified:   dwarfdump/dwarfdump-tt-ext-table.h
	modified:   dwarfdump/dwarfdump-tt-table.h

	modified:   libdwarf/dwarf_names.c
	modified:   libdwarf/dwarf_names.h
	modified:   libdwarf/dwarf_names_enum.h
	modified:   libdwarf/dwarf_names_new.h
	modified:   libdwarf/generated_libdwarf.h.in
	modified:   libdwarf/libdwarf_version.h
repository: repo_url: https://github.com/davea42/libdwarf-code
repo_name: davea42/libdwarf-code
description: Contains source for libdwarf, a library for reading DWARF2 and later DWARF. Contains  source to create dwarfdump, a program which prints DWARF2 and later DWARF in readable format. Has a very limited DWARF writer set of functions in libdwarfp (producer library). Builds using GNU configure, meson, or cmake.
repo_language: C
owner: davea42
file_changes: filename: ChangeLog
change_type: ModificationType.MODIFY
diff: @@ -1,3 +1,6 @@
+2020-10-17  David Anderson
+    * configure.ac: Now version 20201017
+    * configure: Regenerated.
 2020-10-11  David Anderson
     * configure.ac: Now version 20201011
     * configure: Regenerated.

programming_language: Markdown
filename: configure
change_type: ModificationType.MODIFY
diff: @@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libdwarf 20201011.
+# Generated by GNU Autoconf 2.69 for libdwarf 20201017.
 #
 # Report bugs to <libdwarf-list -at- linuxmail -dot- org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libdwarf'
 PACKAGE_TARNAME='libdwarf'
-PACKAGE_VERSION='20201011'
-PACKAGE_STRING='libdwarf 20201011'
+PACKAGE_VERSION='20201017'
+PACKAGE_STRING='libdwarf 20201017'
 PACKAGE_BUGREPORT='libdwarf-list -at- linuxmail -dot- org'
 PACKAGE_URL=''
 
@@ -1362,7 +1362,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libdwarf 20201011 to adapt to many kinds of systems.
+\`configure' configures libdwarf 20201017 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1433,7 +1433,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libdwarf 20201011:";;
+     short | recursive ) echo "Configuration of libdwarf 20201017:";;
    esac
   cat <<\_ACEOF
 
@@ -1566,7 +1566,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libdwarf configure 20201011
+libdwarf configure 20201017
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2110,7 +2110,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libdwarf $as_me 20201011, which was
+It was created by libdwarf $as_me 20201017, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4342,7 +4342,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libdwarf'
- VERSION='20201011'
+ VERSION='20201017'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -19403,7 +19403,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libdwarf $as_me 20201011, which was
+This file was extended by libdwarf $as_me 20201017, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19469,7 +19469,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libdwarf config.status 20201011
+libdwarf config.status 20201017
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

programming_language: Shell
filename: configure.ac
change_type: ModificationType.MODIFY
diff: @@ -16,7 +16,7 @@ m4_define([lt_age], [v_min])
 
 ### Sets the release name. 
 ###m4_define([v_date], [m4_esyscmd_s([date "+%Y%m%d"])])
-m4_define([v_date], [20201011])])
+m4_define([v_date], [20201017])])
 
 AC_PREREQ([2.52])
 ### 2nd arg to AC_INIT is the version 'number'.

programming_language: Python
filename: ChangeLog
change_type: ModificationType.MODIFY
diff: @@ -1,3 +1,8 @@
+2020-10-17: David Anderson
+    * dwarf_names.c,dwarf_names.h,dwarfdump-ta-ext-table.h,
+      dwarfdump-ta-table.h,dwarfdump-tt-ext-table.h,
+      dwarfdump-tt-table.h: Regenerated with latest
+      version string.
 2020-10-15: David Anderson
     * print_lines.c(print_line_context_record): Fixed the
       comments  about DWARF4 vs 5.

programming_language: Markdown
filename: dwarf_names.c
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated routines, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: Lua
filename: dwarf_names.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated routines, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: C
filename: dwarfdump-ta-ext-table.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated code, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: C
filename: dwarfdump-ta-table.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated code, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: C
filename: dwarfdump-tt-ext-table.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated code, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: SQL
filename: dwarfdump-tt-table.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated code, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: C
filename: ChangeLog
change_type: ModificationType.MODIFY
diff: @@ -1,3 +1,7 @@
+2020-10-17: David Anderson
+    * libdwarf_version.h: updated version string
+    * dwarf_names.c,dwarf_names.h,dwarf_names_enum.h,
+      dwarf_names_new.h: regenerated with new version string.
 2020-10-15: David Anderson
     * dwarf_line.c:Set up the default registers correctly
       for DWARF5 as well as earlier versions.

programming_language: Markdown
filename: dwarf_names.c
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated routines, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: Lua
filename: dwarf_names.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Generated routines, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: C
filename: dwarf_names_enum.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Automatically generated, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: Lua
filename: dwarf_names_new.h
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 /* Automatically generated, do not edit. */
-/* Generated sourcedate  2020-10-11 11:34:27-07:00   */
+/* Generated sourcedate  2020-10-17 11:30:22-07:00   */
 
 /* BEGIN FILE */
 

programming_language: SQL
filename: generated_libdwarf.h.in
change_type: ModificationType.MODIFY
diff: @@ -3320,7 +3320,8 @@ int dwarf_macro_context_head(Dwarf_Macro_Context /*head*/,
     Dwarf_Error    * /*error*/);
 
 /*  Returns data from the operands table
-    in the macro unit header. */
+    in the macro unit header. The last op has
+    0 as opcode_number,operand_count and operand_array */
 int dwarf_macro_operands_table(Dwarf_Macro_Context /*head*/,
     Dwarf_Half    /*index*/, /* 0 to opcode_count -1 */
     Dwarf_Half  * /*opcode_number*/,

programming_language: C
filename: libdwarf_version.h
change_type: ModificationType.MODIFY
diff: @@ -4,4 +4,4 @@
     and is modified from time to time.
 */
 
-#define DW_VERSION_DATE_STR " 2020-10-11 11:34:27-07:00  "
+#define DW_VERSION_DATE_STR " 2020-10-17 11:30:22-07:00  "

programming_language: Markdown