SB2017031704 - Multiple vulnerabilities in GNU Binutils
Published: March 17, 2017 Updated: February 10, 2022
Breakdown by Severity
- Low
- Medium
- High
- Critical
Description
This security bulletin contains information about 47 secuirty vulnerabilities.
1) Stack-based buffer overflow (CVE-ID: CVE-2017-9954)
The vulnerability allows a remote attacker to execute arbitrary code on the target system.
The vulnerability exists due to a boundary error within the getvalue function in tekhex.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed when processing a crafted tekhex file, as demonstrated by mishandling within the nm program. A remote unauthenticated attacker can trigger stack-based buffer overflow and execute arbitrary code on the target system.
Successful exploitation of this vulnerability may result in complete compromise of vulnerable system.
2) Out-of-bounds read (CVE-ID: CVE-2017-9955)
The vulnerability allows a remote attacker to perform a denial of service (DoS) attack.
The vulnerability exists due to a boundary error in The get_build_id function in opncls.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28,. A remote attacker can perform a denial of service (heap-based buffer over-read and application crash) via a crafted file in which a certain size field is larger than a corresponding data field, as demonstrated by mishandling within the objdump program.
3) Buffer overflow (CVE-ID: CVE-2017-9742)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The score_opcodes function in opcodes/score7-dis.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
4) Buffer overflow (CVE-ID: CVE-2017-9743)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The print_insn_score32 function in opcodes/score7-dis.c:552 in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
5) Buffer overflow (CVE-ID: CVE-2017-9744)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The sh_elf_set_mach_from_flags function in bfd/elf32-sh.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
6) Buffer overflow (CVE-ID: CVE-2017-9745)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The _bfd_vms_slurp_etir function in bfd/vms-alpha.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
7) Buffer overflow (CVE-ID: CVE-2017-9746)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The disassemble_bytes function in objdump.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of rae insns printing for this file during "objdump -D" execution.
8) Input validation error (CVE-ID: CVE-2017-9747)
The vulnerability allows remote attackers to perform a denial of service (DoS) attack.
The vulnerability exists due to insufficient validation of user-supplied input. A remote attacker can cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
9) Input validation error (CVE-ID: CVE-2017-9748)
The vulnerability allows remote attackers to perform a denial of service (DoS) attack.
The vulnerability exists due to insufficient validation of user-supplied input. A remote attacker can cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
10) Buffer overflow (CVE-ID: CVE-2017-9749)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The *regs* macros in opcodes/bfin-dis.c in GNU Binutils 2.28 allow remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
11) Buffer overflow (CVE-ID: CVE-2017-9750)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
opcodes/rx-decode.opc in GNU Binutils 2.28 lacks bounds checks for certain scale arrays, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
12) Buffer overflow (CVE-ID: CVE-2017-9751)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
opcodes/rl78-decode.opc in GNU Binutils 2.28 has an unbounded GETBYTE macro, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
13) Buffer overflow (CVE-ID: CVE-2017-9752)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
bfd/vms-alpha.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file in the _bfd_vms_get_value and _bfd_vms_slurp_etir functions during "objdump -D" execution.
14) Buffer overflow (CVE-ID: CVE-2017-9753)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The versados_mkobject function in bfd/versados.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, does not initialize a certain data structure, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
15) Buffer overflow (CVE-ID: CVE-2017-9754)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The process_otr function in bfd/versados.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, does not validate a certain offset, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
16) Buffer overflow (CVE-ID: CVE-2017-9755)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
opcodes/i386-dis.c in GNU Binutils 2.28 does not consider the number of registers for bnd mode, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
17) Buffer overflow (CVE-ID: CVE-2017-9756)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
The aarch64_ext_ldst_reglist function in opcodes/aarch64-dis.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during "objdump -D" execution.
18) Type conversion (CVE-ID: CVE-2017-9042)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
readelf.c in GNU Binutils 2017-04-12 has a "cannot be represented in type long" issue, which might allow remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted ELF file.
19) Input validation error (CVE-ID: CVE-2017-9043)
The vulnerability allows a remote non-authenticated attacker to execute arbitrary code.
readelf.c in GNU Binutils 2017-04-12 has a "shift exponent too large for type unsigned long" issue, which might allow remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted ELF file.
20) Out-of-bounds read (CVE-ID: CVE-2017-9044)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The print_symbol_for_build_attribute function in readelf.c in GNU Binutils 2017-04-12 allows remote attackers to cause a denial of service (invalid read and SEGV) via a crafted ELF file.
21) Allocation of Resources Without Limits or Throttling (CVE-ID: CVE-2017-9039)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
GNU Binutils 2.28 allows remote attackers to cause a denial of service (memory consumption) via a crafted ELF file with many program headers, related to the get_program_headers function in readelf.c.
22) NULL pointer dereference (CVE-ID: CVE-2017-9040)
The vulnerability allows a remote attacker to perform a denial of service (DoS) attack.
The vulnerability exists due to a NULL pointer dereference error. A remote attacker can trigger denial of service conditions via a crafted ELF file that triggers a large memory-allocation attempt.
23) Out-of-bounds read (CVE-ID: CVE-2017-9041)
The vulnerability allows a remote attacker to perform a denial of service (DoS) attack.
The vulnerability exists due to a boundary error in GNU Binutils 2.28. A remote attacker can perform a denial of service (heap-based buffer over-read and application crash) via a crafted ELF file, related to MIPS GOT mishandling in the process_mips_specific function in readelf.c.
24) Input validation error (CVE-ID: CVE-2017-8421)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The function coff_set_alignment_hook in coffcode.h in Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has a memory leak vulnerability which can cause memory exhaustion in objdump via a crafted PE file. Additional validation in dump_relocs_in_section in objdump.c can resolve this.
25) NULL pointer dereference (CVE-ID: CVE-2017-8392)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 8 because of missing a check to determine whether symbols are NULL in the _bfd_dwarf2_find_nearest_line function. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objdump, to crash.
26) Out-of-bounds read (CVE-ID: CVE-2017-8393)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to a global buffer over-read error because of an assumption made by code that runs for objcopy and strip, that SHT_REL/SHR_RELA sections are always named starting with a .rel/.rela prefix. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objcopy and strip, to crash.
27) NULL pointer dereference (CVE-ID: CVE-2017-8394)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 4 due to NULL pointer dereferencing of _bfd_elf_large_com_section. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objcopy, to crash.
28) NULL pointer dereference (CVE-ID: CVE-2017-8395)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid write of size 8 because of missing a malloc() return-value check to see if memory had actually been allocated in the _bfd_generic_get_section_contents function. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objcopy, to crash.
29) Input validation error (CVE-ID: CVE-2017-8396)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 1 because the existing reloc offset range tests didn't catch small negative offsets less than the size of the reloc field. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objdump, to crash.
30) Buffer overflow (CVE-ID: CVE-2017-8397)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 1 and an invalid write of size 1 during processing of a corrupt binary containing reloc(s) with negative addresses. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objdump, to crash.
31) Buffer overflow (CVE-ID: CVE-2017-8398)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
dwarf.c in GNU Binutils 2.28 is vulnerable to an invalid read of size 1 during dumping of debug information from a corrupt binary. This vulnerability causes programs that conduct an analysis of binary programs, such as objdump and readelf, to crash.
32) Out-of-bounds read (CVE-ID: CVE-2017-7299)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has an invalid read (of size 8) because the code to emit relocs (bfd_elf_final_link function in bfd/elflink.c) does not check the format of the input file before trying to read the ELF reloc section header. The vulnerability leads to a GNU linker (ld) program crash.
33) Out-of-bounds read (CVE-ID: CVE-2017-7300)
The vulnerability allows a remote attacker to perform a denial of service (DoS) attack.
The vulnerability exists due to a boundary error in the bfd/aoutx.h that is vulnerable to a heap-based buffer over-read (off-by-one) because of an incomplete check for invalid string offsets while loading symbols, leading to a GNU linker (ld) program crash within the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28,. A remote attacker can generate specially crafted data, trigger out-of-bounds read error and perform denial of service attack.
34) Input validation error (CVE-ID: CVE-2017-7301)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has an aout_link_add_symbols function in bfd/aoutx.h that has an off-by-one vulnerability because it does not carefully check the string offset. The vulnerability could lead to a GNU linker (ld) program crash.
35) Out-of-bounds read (CVE-ID: CVE-2017-7302)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has a swap_std_reloc_out function in bfd/aoutx.h that is vulnerable to an invalid read (of size 4) because of missing checks for relocs that could not be recognised. This vulnerability causes Binutils utilities like strip to crash.
36) Out-of-bounds read (CVE-ID: CVE-2017-7303)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read (of size 4) because of missing a check (in the find_link function) for null headers before attempting to match them. This vulnerability causes Binutils utilities like strip to crash.
37) Out-of-bounds read (CVE-ID: CVE-2017-7304)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read (of size 8) because of missing a check (in the copy_special_section_fields function) for an invalid sh_link field before attempting to follow it. This vulnerability causes Binutils utilities like strip to crash.
38) Buffer overflow (CVE-ID: CVE-2017-7223)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
GNU assembler in GNU Binutils 2.28 is vulnerable to a global buffer overflow (of size 1) while attempting to unget an EOF character from the input stream, potentially leading to a program crash.
39) Out-of-bounds write (CVE-ID: CVE-2017-7224)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
The find_nearest_line function in objdump in GNU Binutils 2.28 is vulnerable to an invalid write (of size 1) while disassembling a corrupt binary that contains an empty function name, leading to a program crash.
40) NULL pointer dereference (CVE-ID: CVE-2017-7225)
The vulnerability allows a remote attacker to perform a denial of service (DoS) attack.
The vulnerability exists due to a NULL pointer dereference error in addr2line in GNU Binutils 2.28 does not handle the case where the main file name and the directory name are both empty, triggering a NULL pointer dereference and an invalid write, and leading to a program crash. A remote attacker can perform a denial of service (DoS) attack.
41) Out-of-bounds read (CVE-ID: CVE-2017-7226)
The vulnerability allows a remote non-authenticated attacker to #BASIC_IMPACT#.
The pe_ILF_object_p function in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to a heap-based buffer over-read of size 4049 because it uses the strlen function instead of strnlen, leading to program crashes in several utilities such as addr2line, size, and strings. It could lead to information disclosure as well.
42) Buffer overflow (CVE-ID: CVE-2017-7227)
The vulnerability allows a remote non-authenticated attacker to perform a denial of service (DoS) attack.
GNU linker (ld) in GNU Binutils 2.28 is vulnerable to a heap-based buffer overflow while processing a bogus input script, leading to a program crash. This relates to lack of '