Lucene search

K
suseSuseOPENSUSE-SU-2018:3223-1
HistoryOct 18, 2018 - 6:52 p.m.

Security update for binutils (moderate)

2018-10-1818:52:54
lists.opensuse.org
252

0.032 Low

EPSS

Percentile

90.2%

This update for binutils to 2.31 fixes the following issues:

These security issues were fixed:

  • CVE-2017-15996: readelf allowed remote attackers to cause a denial of
    service (excessive memory allocation) or possibly have unspecified other
    impact via a crafted ELF file that triggered a buffer overflow on fuzzed
    archive header (bsc#1065643).
  • CVE-2017-15939: Binary File Descriptor (BFD) library (aka libbfd)
    mishandled NULL files in a .debug_line file table, which allowed remote
    attackers to cause a denial of service (NULL pointer dereference and
    application crash) via a crafted ELF file, related to concat_filename
    (bsc#1065689).
  • CVE-2017-15938: the Binary File Descriptor (BFD) library (aka libbfd)
    miscalculated DW_FORM_ref_addr die refs in the case of a relocatable
    object file, which allowed remote attackers to cause a denial of service
    (find_abstract_instance_name invalid memory read, segmentation fault,
    and application crash) (bsc#1065693).
  • CVE-2017-16826: The coff_slurp_line_table function the Binary File
    Descriptor (BFD) library (aka libbfd) allowed remote attackers to cause
    a denial of service (invalid memory access and application crash) or
    possibly have unspecified other impact via a crafted PE file
    (bsc#1068640).
  • CVE-2017-16832: The pe_bfd_read_buildid function in the Binary File
    Descriptor (BFD) library (aka libbfd) did not validate size and offset
    values in the data dictionary, which allowed remote attackers to cause a
    denial of service (segmentation violation and application crash) or
    possibly have unspecified other impact via a crafted PE file
    (bsc#1068643).
  • CVE-2017-16831: Binary File Descriptor (BFD) library (aka libbfd) did
    not validate the symbol count, which allowed remote attackers to cause a
    denial of service (integer overflow and application crash, or excessive
    memory allocation) or possibly have unspecified other impact via a
    crafted PE file (bsc#1068887).
  • CVE-2017-16830: The print_gnu_property_note function did not have
    integer-overflow protection on 32-bit platforms, which allowed remote
    attackers to cause a denial of service (segmentation violation and
    application crash) or possibly have unspecified other impact via a
    crafted ELF file (bsc#1068888).
  • CVE-2017-16829: The _bfd_elf_parse_gnu_properties function in the Binary
    File Descriptor (BFD) library (aka libbfd) did not prevent negative
    pointers, which allowed remote attackers to cause a denial of service
    (out-of-bounds read and application crash) or possibly have unspecified
    other impact via a crafted ELF file (bsc#1068950).
  • CVE-2017-16828: The display_debug_frames function allowed remote
    attackers to cause a denial of service (integer overflow and heap-based
    buffer over-read, and application crash) or possibly have unspecified
    other impact via a crafted ELF file (bsc#1069176).
  • CVE-2017-16827: The aout_get_external_symbols function in the Binary
    File Descriptor (BFD) library (aka libbfd) allowed remote attackers to
    cause a denial of service (slurp_symtab invalid free and application
    crash) or possibly have unspecified other impact via a crafted ELF file
    (bsc#1069202).
  • CVE-2018-6323: The elf_object_p function in the Binary File Descriptor
    (BFD) library (aka libbfd) had an unsigned integer overflow because
    bfd_size_type multiplication is not used. A crafted ELF file allowed
    remote attackers to cause a denial of service (application crash) or
    possibly have unspecified
    other impact (bsc#1077745).
  • CVE-2018-6543: Prevent integer overflow in the function
    load_specific_debug_section() which resulted in malloc() with 0 size.
    A crafted ELF file allowed remote attackers to cause a denial of service
    (application crash) or possibly have unspecified other impact
    (bsc#1079103).
  • CVE-2018-6759: The bfd_get_debug_link_info_1 function in the Binary File
    Descriptor (BFD) library (aka libbfd) had an unchecked strnlen
    operation. Remote attackers could have leveraged this vulnerability to
    cause a denial of service (segmentation fault) via a crafted ELF file
    (bsc#1079741).
  • CVE-2018-6872: The elf_parse_notes function in the Binary File
    Descriptor (BFD) library (aka libbfd) allowed remote attackers to cause
    a denial of service (out-of-bounds read and segmentation violation) via
    a note with a large alignment (bsc#1080556).
  • CVE-2018-7208: In the coff_pointerize_aux function in the Binary File
    Descriptor (BFD) library (aka libbfd) an index was not validated, which
    allowed remote attackers to cause a denial of service (segmentation
    fault) or possibly have unspecified other impact via a crafted file, as
    demonstrated by objcopy of a COFF object (bsc#1081527).
  • CVE-2018-7570: The assign_file_positions_for_non_load_sections function
    in the Binary File Descriptor (BFD) library (aka libbfd) allowed remote
    attackers to cause a denial of service (NULL pointer dereference and
    application crash) via an ELF file with a RELRO segment that lacks a
    matching LOAD segment, as demonstrated by objcopy (bsc#1083528).
  • CVE-2018-7569: The Binary File Descriptor (BFD) library (aka libbfd)
    allowed remote attackers to cause a denial of service (integer underflow
    or overflow, and application crash) via an ELF file with a corrupt DWARF
    FORM block, as demonstrated by nm (bsc#1083532).
  • CVE-2018-8945: The bfd_section_from_shdr function in the Binary File
    Descriptor (BFD) library (aka libbfd) allowed remote attackers to cause
    a denial of service (segmentation fault) via a large attribute section
    (bsc#1086608).
  • CVE-2018-7643: The display_debug_ranges function allowed remote
    attackers to cause a denial of service (integer overflow and application
    crash) or possibly have unspecified other impact via a crafted ELF file,
    as demonstrated by
    objdump (bsc#1086784).
  • CVE-2018-7642: The swap_std_reloc_in function in the Binary File
    Descriptor (BFD) library (aka libbfd) allowed remote attackers to cause
    a denial of service (aout_32_swap_std_reloc_out NULL pointer dereference
    and application crash) via a crafted ELF file, as demonstrated by
    objcopy (bsc#1086786).
  • CVE-2018-7568: The parse_die function in the Binary File Descriptor
    (BFD) library (aka libbfd) allowed remote attackers to cause a denial of
    service (integer overflow and application crash) via an ELF file with
    corrupt dwarf1 debug information, as demonstrated by nm (bsc#1086788).
  • CVE-2018-10373: concat_filename in the Binary File Descriptor (BFD)
    library (aka libbfd) allowed remote attackers to cause a denial of
    service (NULL pointer dereference and application crash) via a crafted
    binary file, as demonstrated by nm-new (bsc#1090997).
  • CVE-2018-10372: process_cu_tu_index allowed remote attackers to cause a
    denial of service (heap-based buffer over-read and application crash)
    via a crafted binary file, as demonstrated by readelf (bsc#1091015).
  • CVE-2018-10535: The ignore_section_sym function in the Binary File
    Descriptor (BFD) library (aka libbfd) did not validate the
    output_section pointer in the case of a symtab entry with a "SECTION"
    type that has a "0" value, which allowed remote attackers to cause a
    denial of service (NULL pointer dereference and application crash) via a
    crafted file, as demonstrated by objcopy (bsc#1091365).
  • CVE-2018-10534: The _bfd_XX_bfd_copy_private_bfd_data_common function in
    the Binary File Descriptor (BFD) library (aka libbfd) processesed a
    negative Data Directory size with an unbounded loop that increased the
    value of (external_IMAGE_DEBUG_DIRECTORY) *edd so that the address
    exceeded its own memory region, resulting in an out-of-bounds memory
    write, as demonstrated by
    objcopy copying private info with
    _bfd_pex64_bfd_copy_private_bfd_data_common in pex64igen.c
    (bsc#1091368).

These non-security issues were fixed:

  • The AArch64 port now supports showing disassembly notes which are
    emitted when inconsistencies are found with the instruction that may
    result in the instruction being invalid. These can be turned on with the
    option -M notes to objdump.
  • The AArch64 port now emits warnings when a combination of an instruction
    and a named register could be invalid.
  • Added O modifier to ar to display member offsets inside an archive
  • The ADR and ADRL pseudo-instructions supported by the ARM assembler now
    only set the bottom bit of the address of thumb function symbols if the
    -mthumb-interwork command line option is active.
  • Add --generate-missing-build-notes=[yes|no] option to create (or not)
    GNU Build Attribute notes if none are present in the input sources. Add
    a
    –enable-generate-build-notes=[yes|no] configure time option to set the
    default behaviour. Set the default if the configure option is not used
    to "no".
  • Remove -mold-gcc command-line option for x86 targets.
  • Add -O[2|s] command-line options to x86 assembler to enable alternate
    shorter instruction encoding.
  • Add support for .nops directive. It is currently supported only for x86
    targets.
  • Speed up direct linking with DLLs for Cygwin and Mingw targets.
  • Add a configure option --enable-separate-code to decide whether
    -z separate-code should be enabled in ELF linker by default. Default to
    yes for Linux/x86 targets. Note that -z separate-code can increase disk
    and memory size.
  • RISC-V: Fix symbol address problem with versioned symbols
  • Restore riscv64-elf cross prefix via symlinks
  • RISC-V: Don’t enable relaxation in relocatable link
  • Prevent linking faiures on i386 with assertion (bsc#1085784)
  • Fix symbol size bug when relaxation deletes bytes
  • Add --debug-dump=links option to readelf and --dwarf=links option to
    objdump which displays the contents of any .gnu_debuglink or
    .gnu_debugaltlink sections. Add a --debug-dump=follow-links option to
    readelf and a --dwarf=follow-links
    option to objdump which causes indirect links into separate debug info
    files to be followed when dumping other DWARF sections.
  • Add support for loaction views in DWARF debug line information.
  • Add -z separate-code to generate separate code PT_LOAD segment.
  • Add "-z undefs" command line option as the inverse of the "-z defs"
    option.
  • Add -z globalaudit command line option to force audit libraries to be
    run for every dynamic object loaded by an executable - provided that the
    loader supports this functionality.
  • Tighten linker script grammar around file name specifiers to prevent the
    use
    of SORT_BY_ALIGNMENT and SORT_BY_INIT_PRIORITY on filenames. These
    would previously be accepted but had no effect.
  • The EXCLUDE_FILE directive can now be placed within any SORT_* directive
    within input section lists.
  • Fix linker relaxation with --wrap
  • Add arm-none-eabi symlinks (bsc#1074741)

Former updates of binutils also fixed the following security issues, for
which there was not CVE assigned at the time the update was released or no
mapping between code change and CVE existed:

  • CVE-2014-9939: Prevent stack buffer overflow when printing bad bytes in
    Intel Hex objects (bsc#1030296).
  • CVE-2017-7225: The find_nearest_line function in addr2line did 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 (bsc#1030585).
  • CVE-2017-7224: The find_nearest_line function in objdump was vulnerable
    to an invalid write (of size 1) while disassembling a corrupt binary
    that contains an empty function name, leading to a program crash
    (bsc#1030588).
  • CVE-2017-7223: GNU assembler in was 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 (bsc#1030589).
  • CVE-2017-7226: The pe_ILF_object_p function in the Binary File
    Descriptor (BFD) library (aka libbfd) was vulnerable to a heap-based
    buffer over-read of size 4049 because it used 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 (bsc#1030584).
  • CVE-2017-7299: The Binary File Descriptor (BFD) library (aka libbfd) had
    an invalid read (of size 8) because the code to emit relocs
    (bfd_elf_final_link function in bfd/elflink.c) did not check the format
    of the input file trying to read the ELF reloc section header. The
    vulnerability leads to a GNU linker (ld) program crash (bsc#1031644).
  • CVE-2017-7300: The Binary File Descriptor (BFD) library (aka libbfd) had
    an aout_link_add_symbols function in 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 (bsc#1031656).
  • CVE-2017-7302: The Binary File Descriptor (BFD) library (aka libbfd) had
    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 caused Binutils utilities like
    strip to crash (bsc#1031595).
  • CVE-2017-7303: The Binary File Descriptor (BFD) library (aka libbfd) was
    vulnerable to an invalid read (of size 4) because of missing a check (in
    the find_link function) for null headers attempting to match them. This
    vulnerability caused Binutils utilities like strip to crash
    (bsc#1031593).
  • CVE-2017-7301: The Binary File Descriptor (BFD) library (aka libbfd) had
    an aout_link_add_symbols function in bfd/aoutx.h that has an off-by-one
    vulnerability because it did not carefully check the string offset. The
    vulnerability could lead to a GNU linker (ld) program crash
    (bsc#1031638).
  • CVE-2017-7304: The Binary File Descriptor (BFD) library (aka libbfd) was
    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
    attempting to follow it. This vulnerability caused Binutils utilities
    like strip to crash (bsc#1031590).
  • CVE-2017-8392: The Binary File Descriptor (BFD) library (aka libbfd) was
    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 caused programs that conduct an analysis of
    binary programs using the libbfd library, such as objdump, to crash
    (bsc#1037052).
  • CVE-2017-8393: The Binary File Descriptor (BFD) library (aka libbfd) was
    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 caused programs that conduct an analysis of binary
    programs using the libbfd library, such as
    objcopy and strip, to crash (bsc#1037057).
  • CVE-2017-8394: The Binary File Descriptor (BFD) library (aka libbfd) was
    vulnerable to an invalid read of size 4 due to NULL pointer
    dereferencing of _bfd_elf_large_com_section. This vulnerability caused
    programs that conduct an analysis of binary programs using the libbfd
    library, such as objcopy, to crash (bsc#1037061).
  • CVE-2017-8396: The Binary File Descriptor (BFD) library (aka libbfd) was
    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 caused programs that conduct
    an analysis of binary programs using the libbfd library, such as
    objdump, to crash (bsc#1037066).
  • CVE-2017-8421: The function coff_set_alignment_hook in Binary File
    Descriptor (BFD) library (aka libbfd) had a memory leak vulnerability
    which can cause memory exhaustion in objdump via a crafted PE file
    (bsc#1037273).
  • CVE-2017-9746: The disassemble_bytes function in objdump.c allowed
    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 (bsc#1044891).
  • CVE-2017-9747: The ieee_archive_p function in the Binary File Descriptor
    (BFD) library (aka libbfd) might have allowed 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 (bsc#1044897).
  • CVE-2017-9748: The ieee_object_p function in the Binary File Descriptor
    (BFD) library (aka libbfd) might have allowed 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 (bsc#1044901).
  • CVE-2017-9750: opcodes/rx-decode.opc lacked bounds checks for certain
    scale arrays, which allowed 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 (bsc#1044909).
  • CVE-2017-9755: Not considering the the number of registers for bnd mode
    allowed 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 (bsc#1044925).
  • CVE-2017-9756: The aarch64_ext_ldst_reglist function allowed 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 (bsc#1044927).
  • CVE-2017-7209: The dump_section_as_bytes function in readelf accessed a
    NULL pointer while reading section contents in a corrupt binary, leading
    to a program crash (bsc#1030298).
  • CVE-2017-6965: readelf wrote to illegal addresses while processing
    corrupt input files containing symbol-difference relocations, leading to
    a heap-based buffer overflow (bsc#1029909).
  • CVE-2017-6966: readelf had a use-after-free (specifically
    read-after-free) error while processing multiple, relocated sections in
    an MSP430 binary. This is caused by mishandling of an invalid symbol
    index, and mishandling of state across invocations (bsc#1029908).
  • CVE-2017-6969: readelf was vulnerable to a heap-based buffer over-read
    while processing corrupt RL78 binaries. The vulnerability can trigger
    program crashes. It may lead to an information leak as well
    (bsc#1029907).
  • CVE-2017-7210: objdump was vulnerable to multiple heap-based buffer
    over-reads (of size 1 and size 8) while handling corrupt STABS enum type
    strings in a crafted object file, leading to program crash
    (bsc#1030297).

This update was imported from the SUSE:SLE-12:Update update project.

References