Glibc 2.32 Systembibliotheksversion

Nach sechs Monaten Entwicklungszeit veröffentlicht Veröffentlichung der Systembibliothek GNU C-Bibliothek (glibc) 2.32, das vollständig den Anforderungen der Standards ISO C11 und POSIX.1-2017 entspricht. Die neue Version enthält Korrekturen von 67 Entwicklern.

Von den in Glibc 2.32 implementierten Verbesserungen Sie können feststellen:

  • Unterstützung für Synopsys ARC HS (ARCv2 ISA)-Prozessoren hinzugefügt. Für die Ausführung des Ports sind mindestens binutils 2.32, gcc 8.3 und der Linux-Kernel 5.1 erforderlich. Drei ABI-Varianten werden unterstützt: arc-linux-gnu, arc-linux-gnuhf und arceb-linux-gnu (Big-Endian);
  • Laden der in den Abschnitten DT_AUDIT und angegebenen Prüfmodule
    DT_DEPAUDIT der ausführbaren Datei.

  • Für die powerpc64le-Architektur ist Unterstützung für den IEEE128-Long-Double-Typ implementiert, der beim Erstellen mit der Option „-mabi=ieeelongdouble“ aktiviert wird.
  • Einige APIs sind mit dem GCC-Attribut „access“ versehen, wodurch beim Kompilieren in GCC 10 bessere Warnungen generiert werden können, um mögliche Pufferüberläufe und andere Out-of-Bounds-Szenarien zu erkennen.
  • Für Linux-Systeme sind die Funktionen pthread_attr_setsigmask_np und
    pthread_attr_getsigmask_np, die der Anwendung die Möglichkeit geben, eine Signalmaske für Threads anzugeben, die mit pthread_create erstellt wurden.

  • Kodierungsdaten, Zeichentypinformationen und Transliterationstabellen wurden aktualisiert, um die Unicode 13.0.0-Spezifikation zu unterstützen;
  • Neue Header-Datei hinzugefügt , die die Variable __libc_single_threaded definiert, die in Anwendungen für Single-Threaded-Optimierungen verwendet werden kann.
  • Funktionen sigabbrev_np und sigdescr_np hinzugefügt, die den verkürzten Namen und die Beschreibung des Signals zurückgeben (z. B. „HUP“ und „Hangup“ für SIGHUP).
  • Funktionen strerrorname_np und strerrordesc_np hinzugefügt, die den Namen und die Beschreibung des Fehlers zurückgeben (z. B. „EINVAL“ und „Ungültiges Argument“ für EINVAL).
  • Für die ARM64-Plattform wurde ein „--enable-standard-branch-protection“-Flag hinzugefügt (oder -mbranch-protection=standard in GCC), das den ARMv8.5-BTI-Mechanismus (Branch Target Indicator) zum Schutz aktiviert Ausführung von Befehlssätzen, die nicht ausgeführt werden sollen. Verzweigungsübergänge. Das Blockieren von Übergängen zu beliebigen Codeabschnitten wird implementiert, um die Erstellung von Gadgets in Exploits zu verhindern, die Return-Oriented-Programming-Techniken (ROP – Return-Oriented Programming) verwenden; der Angreifer versucht nicht, seinen Code im Speicher zu platzieren, sondern operiert mit bereits vorhandenen Teilen von Maschinenbefehlen, die mit einem Return-Control-Befehl enden, aus dem eine Aufrufkette aufgebaut wird, um die gewünschte Funktionalität zu erhalten).
  • Es wurde eine umfassende Bereinigung veralteter Funktionen durchgeführt, einschließlich der Entfernung der Optionen „--enable-obsolete-rpc“ und „--enable-obsolete-nsl“ in der Headerdatei . Die Funktionen sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore und sigset, die Arrays sys_siglist, _sys_siglist und sys_sigabbrev, die Symbole sys_errlist, _sys_errlist, sys_nerr und _sys_nerr sowie das NSS-Modul hesiod sind veraltet.
  • ldconfig wurde standardmäßig verschoben, um das neue ld.so.cache-Format zu verwenden, das in Glibc seit fast 20 Jahren unterstützt wird.
  • Behobene Schwachstellen:
    • CVE-2016-10228 – Eine Schleife im Dienstprogramm iconv tritt auf, wenn es mit der Option „-c“ ausgeführt wird und falsche Multibyte-Daten verarbeitet.
    • CVE-2020-10029 Stapelbeschädigung beim Aufruf trigonometrischer Funktionen mit einem Pseudo-Null-Argument.
    • CVE-2020-1752 – Ein Use-After-Free-Speicherzugriff in der Glob-Funktion beim Erweitern eines Verweises auf das Home-Verzeichnis („~user“) in Pfaden.
    • CVE-2020-6096 – Falsche Behandlung negativer Parameterwerte in memcpy() und memmove() auf der ARMv7-Plattform, die die Größe des kopierten Bereichs bestimmen. Erlaubt Organisieren Sie die Codeausführung bei der Verarbeitung von Daten, die in den Funktionen memcpy() und memmove() auf eine bestimmte Weise formatiert sind. Es ist bezeichnend, dass das Problem blieb seit der Veröffentlichung der Informationen fast zwei Monate lang und seit der Benachrichtigung der Glibc-Entwickler fünf Monate lang unkorrigiert.

Source: opennet.ru

Kommentar hinzufügen