Lucene search

K
suseSuseOPENSUSE-SU-2021:3616-1
HistoryNov 04, 2021 - 12:00 a.m.

Security update for binutils (moderate)

2021-11-0400:00:00
lists.opensuse.org
37

6.5 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

7.1 High

CVSS2

Access Vector

NETWORK

Access Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

COMPLETE

AV:N/AC:M/Au:N/C:N/I:N/A:C

An update that solves 13 vulnerabilities, contains four
features and has one errata is now available.

Description:

This update for binutils fixes the following issues:

Update to binutils 2.37:

  • The GNU Binutils sources now requires a C99 compiler and library to
    build.

  • Support for Realm Management Extension (RME) for AArch64 has been added.

  • A new linker option ‘-z report-relative-reloc’ for x86 ELF targets has
    been added to report dynamic relative relocations.

  • A new linker option ‘-z start-stop-gc’ has been added to disable special
    treatment of _start/_stop references when
    –gc-sections.

  • A new linker options ‘-Bno-symbolic’ has been added which will cancel
    the ‘-Bsymbolic’ and ‘-Bsymbolic-functions’ options.

  • The readelf tool has a new command line option which can be used to
    specify how the numeric values of symbols are reported.
    –sym-base=0|8|10|16 tells readelf to display the values in base 8, base
    10 or base 16. A sym base of 0 represents the default action
    of displaying values under 10000 in base 10 and values above that in
    base 16.

  • A new format has been added to the nm program. Specifying
    ‘–format=just-symbols’ (or just using -j) will tell the program to
    only display symbol names and nothing else.

  • A new command line option ‘–keep-section-symbols’ has been added to
    objcopy and strip. This stops the removal of unused section symbols
    when the file is copied. Removing these symbols saves space, but
    sometimes they are needed by other tools.

  • The ‘–weaken’, ‘–weaken-symbol’ and ‘–weaken-symbols’ options
    supported by objcopy now make undefined symbols weak on targets that
    support weak symbols.

  • Readelf and objdump can now display and use the contents of .debug_sup
    sections.

  • Readelf and objdump will now follow links to separate debug info files
    by default. This behaviour can be stopped via the use of the new ‘-wN’
    or ‘–debug-dump=no-follow-links’ options for readelf and the ‘-WN’ or
    ‘–dwarf=no-follow-links’ options for objdump. Also the old behaviour
    can be restored by the use of the ‘–enable-follow-debug-links=no’
    configure time option.

    The semantics of the =follow-links option have also been slightly
    changed. When enabled, the option allows for the loading of symbol tables
    and string tables from the separate files which can be used to enhance the
    information displayed when dumping other sections, but it does not
    automatically imply that information from the separate files should be
    displayed.

    If other debug section display options are also enabled (eg
    ‘–debug-dump=info’) then the contents of matching sections in both the
    main file and the separate debuginfo file will be displayed. This is
    because in most cases the debug section will only be present in one of the
    files.

    If however non-debug section display options are enabled (eg
    ‘–sections’) then the contents of matching parts of the separate
    debuginfo file will not be displayed. This is because in most cases the
    user probably only wanted to load the symbol information from the separate
    debuginfo file. In order to change this behaviour a new command line
    option --process-links can be used. This will allow di0pslay options to
    applied to both the main file and any separate debuginfo files.

  • Nm has a new command line option: ‘–quiet’. This suppresses “no
    symbols” diagnostic.

Update to binutils 2.36:

New features in the Assembler:

  • General:

    • When setting the link order attribute of ELF sections, it is now
      possible to use a numeric section index instead of symbol name.
    • Added a .nop directive to generate a single no-op instruction in a
      target neutral manner. This instruction does have an effect on DWARF
      line number generation, if that is active.
    • Removed --reduce-memory-overheads and --hash-size as gas now uses
      hash tables that can be expand and shrink automatically.
  • X86/x86_64:

    • Add support for AVX VNNI, HRESET, UINTR, TDX, AMX and Key Locker
      instructions.
    • Support non-absolute segment values for lcall and ljmp.
    • Add {disp16} pseudo prefix to x86 assembler.
    • Configure with --enable-x86-used-note by default for Linux/x86.
  • ARM/AArch64:

    • Add support for Cortex-A78, Cortex-A78AE and Cortex-X1, Cortex-R82,
      Neoverse V1, and Neoverse N2 cores.
    • Add support for ETMv4 (Embedded Trace Macrocell), ETE (Embedded Trace
      Extension), TRBE (Trace Buffer Extension), CSRE (Call Stack Recorder
      Extension) and BRBE (Branch Record Buffer Extension) system registers.
    • Add support for Armv8-R and Armv8.7-A ISA extensions.
    • Add support for DSB memory nXS barrier, WFET and WFIT instruction for
      Armv8.7.
    • Add support for +csre feature for -march. Add CSR PDEC instruction
      for CSRE feature in AArch64.
    • Add support for +flagm feature for -march in Armv8.4 AArch64.
    • Add support for +ls64 feature for -march in Armv8.7 AArch64. Add
      atomic 64-byte load/store instructions for this feature.
    • Add support for +pauth (Pointer Authentication) feature for
      -march in AArch64.

New features in the Linker:

 * Add --error-handling-script=<NAME> command line option to allow a
   helper script to be invoked when an undefined symbol or a missing
   library is encountered.  This option can be suppressed via the
   configure time switch: --enable-error-handling-script=no.
 * Add -z x86-64-{baseline|v[234]} to the x86 ELF linker to mark
   x86-64-{baseline|v[234]} ISA level as needed.
 * Add -z unique-symbol to avoid duplicated local symbol names.
 * The creation of PE format DLLs now defaults to using a more secure set
   of DLL characteristics.
 * The linker now deduplicates the types in .ctf sections.  The new
   command-line option --ctf-share-types describes how to do this: its
   default value, share-unconflicted, produces the most compact
    output.
 * The linker now omits the "variable section" from .ctf sections by
   default, saving space.  This is almost certainly what you want unless
   you are working on a project that has its own analogue of symbol
   tables that are not reflected in the ELF symtabs.

New features in other binary tools:

 * The ar tool's previously unused l modifier is now used for specifying
   dependencies of a static library. The arguments of this option (or
   --record-libdeps long form option) will be stored verbatim in the
   __.LIBDEP member of the archive, which the linker may read at link
   time.
 * Readelf can now display the contents of LTO symbol table sections when
   asked to do so via the --lto-syms command line
   option.
 * Readelf now accepts the -C command line option to enable the
   demangling of symbol names.  In addition the --demangle=<style>,
   --no-demangle, --recurse-limit and --no-recurse-limit options are also
    now availale.

The following security fixes are addressed by the update:

  • CVE-2021-20197: Fixed a race condition which allows users to own
    arbitrary files (bsc#1181452).
  • CVE-2021-20284: Fixed a heap-based buffer overflow in
    _bfd_elf_slurp_secondary_reloc_section in elf.c (bsc#1183511).
  • CVE-2021-3487: Fixed a denial of service via excessive debug section
    size causing excessive memory consumption in bfd’s dwarf2.c
    read_section() (bsc#1184620).
  • CVE-2020-35448: Fixed a heap-based buffer over-read in
    bfd_getl_signed_32() in libbfd.c (bsc#1184794).
  • CVE-2020-16590: Fixed a double free vulnerability in
    process_symbol_table() (bsc#1179898).
  • CVE-2020-16591: Fixed an invalid read in process_symbol_table()
    (bsc#1179899).
  • CVE-2020-16592: Fixed an use-after-free in bfd_hash_lookup()
    (bsc#1179900).
  • CVE-2020-16593: Fixed a null pointer dereference in
    scan_unit_for_symbols() (bsc#1179901).
  • CVE-2020-16598: Fixed a null pointer dereference in
    debug_get_real_type() (bsc#1179902).
  • CVE-2020-16599: Fixed a null pointer dereference in
    _bfd_elf_get_symbol_version_string() (bsc#1179903)
  • CVE-2020-35493: Fixed heap-based buffer overflow in
    bfd_pef_parse_function_stubs function in bfd/pef.c via crafted PEF file
    (bsc#1180451).
  • CVE-2020-35496: Fixed multiple null pointer dereferences in bfd module
    due to not checking return value of bfd_malloc (bsc#1180454).
  • CVE-2020-35507: Fixed a null pointer dereference in
    bfd_pef_parse_function_stubs() (bsc#1180461).

Patch Instructions:

To install this openSUSE Security Update use the SUSE recommended installation methods
like YaST online_update or “zypper patch”.

Alternatively you can run the command listed for your product:

  • openSUSE Leap 15.3:

    zypper in -t patch openSUSE-SLE-15.3-2021-3616=1

OSVersionArchitecturePackageVersionFilename
openSUSE Leap15.3aarch64< - openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):.aarch64.rpm
openSUSE Leap15.3ppc64le< - openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):.ppc64le.rpm
openSUSE Leap15.3s390x< - openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):.s390x.rpm
openSUSE Leap15.3x86_64< - openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64):.x86_64.rpm
openSUSE Leap15.3aarch64< - openSUSE Leap 15.3 (aarch64 ppc64le x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le x86_64):.aarch64.rpm
openSUSE Leap15.3ppc64le< - openSUSE Leap 15.3 (aarch64 ppc64le x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le x86_64):.ppc64le.rpm
openSUSE Leap15.3x86_64< - openSUSE Leap 15.3 (aarch64 ppc64le x86_64):- openSUSE Leap 15.3 (aarch64 ppc64le x86_64):.x86_64.rpm
openSUSE Leap15.3aarch64< - openSUSE Leap 15.3 (aarch64 ppc64le s390x):- openSUSE Leap 15.3 (aarch64 ppc64le s390x):.aarch64.rpm
openSUSE Leap15.3ppc64le< - openSUSE Leap 15.3 (aarch64 ppc64le s390x):- openSUSE Leap 15.3 (aarch64 ppc64le s390x):.ppc64le.rpm
openSUSE Leap15.3s390x< - openSUSE Leap 15.3 (aarch64 ppc64le s390x):- openSUSE Leap 15.3 (aarch64 ppc64le s390x):.s390x.rpm
Rows per page:
1-10 of 181

6.5 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

7.1 High

CVSS2

Access Vector

NETWORK

Access Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

COMPLETE

AV:N/AC:M/Au:N/C:N/I:N/A:C