Veröffentlichung der systemeigenen Bibliothek Glibc 2.32

Nach sechs Monaten Entwicklungszeit veröffentlicht Release der Systembibliothek GNU C Library (glibc) 2.32, die vollstÀndig den Anforderungen der Standards ISO C11 und POSIX.1-2017 entspricht. Die neue Veröffentlichung umfasst Korrekturen von 67 Entwicklern.

Implementiert in Glibc 2.32 Verbesserungen gehören:

  • UnterstĂŒtzung fĂŒr Synopsys ARC HS Prozessoren (ARCv2 ISA) hinzugefĂŒgt. FĂŒr den Port wird mindestens binutils 2.32, gcc 8.3 und der Linux-Kernel 5.1 benötigt. UnterstĂŒtzt werden drei Varianten des ABI arc-linux-gnu, arc-linux-gnuhf und arceb-linux-gnu (big-endian);
  • Laden von Auditmodulen, die in den Abschnitten DT_AUDIT und
    DT_DEPAUDIT der ausfĂŒhrbaren Datei angegeben sind, wurde implementiert.
  • FĂŒr die Architektur powerpc64le wurde UnterstĂŒtzung fĂŒr den Typ IEEE128 long double hinzugefĂŒgt, der bei der Erstellung mit der Option „-mabi=ieeolongdouble“ aktiviert wird.
  • Einige APIs sind mit dem GCC-Attribut ‚access‘ annotiert, das bei der Kompilierung in GCC 10 qualitativ hochwertigere Warnungen bei der Erkennung möglicher PufferĂŒberlĂ€ufe und anderer Arten von Überlaufgrenzen erzeugt.
  • FĂŒr Linux-Systeme wurden die Funktionen pthread_attr_setsigmask_np und
    pthread_attr_getsigmask_np implementiert, die es der Anwendung ermöglichen, eine Signalmask fĂŒr Threads anzugeben, die mit pthread_create erstellt wurden.
  • Die Kodierungsdaten, die Informationen ĂŒber Zeichentypen und die Transliterations Tabellen wurden aktualisiert, um die Spezifikation Unicode 13.0.0 zu unterstĂŒtzen;
  • Eine neue Header-Datei hinzugefĂŒgt, die die Variable __libc_single_threaded definiert, die in Anwendungen fĂŒr einstrĂ€ngige Optimierungen verwendet werden kann.
  • Die Funktionen sigabbrev_np und sigdescr_np wurden hinzugefĂŒgt, die einen verkĂŒrzten Namen und eine Beschreibung eines Signals zurĂŒckgeben (z. B. „HUP“ und „Hangup“ fĂŒr SIGHUP).
  • Die Funktionen strerrorname_np und strerrordesc_np wurden hinzugefĂŒgt, die den Namen und die Beschreibung eines Fehlers zurĂŒckgeben (z. B. „EINVAL“ und „UngĂŒltiges Argument“ fĂŒr EINVAL).
  • FĂŒr die Plattform ARM64 wurde das Flag „--enable-standard-branch-protection“ (oder -mbranch-protection=standard in GCC) hinzugefĂŒgt, das den Mechanismus ARMv8.5-BTI (Branch Target Indicator) aktiviert, um die AusfĂŒhrung von BefehlssĂ€tzen zu schĂŒtzen, bei denen keine ÜbergĂ€nge wĂ€hrend der Zweigbildung ausgefĂŒhrt werden sollten. Das Blockieren von ÜbergĂ€ngen auf beliebige Codeabschnitte wurde implementiert, um die Erstellung von Gadgets in Exploits zu verhindern, die auf Techniken des rĂŒckwĂ€rtsorientierten Programmierens (ROP - Return-Oriented Programming) zurĂŒckgreifen, bei denen der Angreifer nicht versucht, eigenen Code im Speicher abzulegen, sondern bereits vorhandene Teile von Maschinenanweisungen verwendet, die mit einer RĂŒckgabebefehlsanweisung enden, aus denen eine Aufrufkette aufgebaut wird, um die gewĂŒnschte FunktionalitĂ€t zu erhalten.
  • Eine umfassende Bereinigung veralteter Funktionen wurde durchgefĂŒhrt, darunter die Optionen „—enable-obsolete-rpc“ und „—enable-obsolete-nsl“, und die Header-Datei . Folgende Funktionen wurden als veraltet erklĂ€rt: sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore und sigset, sowie die Arrays sys_siglist, _sys_siglist und sys_sigabbrev, die Symbole sys_errlist, _sys_errlist, sys_nerr und _sys_nerr, und das NSS-Modul hesiod.
  • ldconfig wurde standardmĂ€ĂŸig auf das neue Format ld.so.cache umgestellt, das in glibc bereits seit fast 20 Jahren unterstĂŒtzt wird.
  • Behobene SicherheitsanfĂ€lligkeiten:
    • CVE-2016-10228 — eine Endlosschleife in der Utility iconv, die auftritt, wenn sie mit der Option „-c“ fĂŒr die Verarbeitung ungĂŒltiger mehrbyte-Kodierungsdaten aufgerufen wird.
    • CVE-2020-10029 — StackbeschĂ€digung beim Aufruf trigonometrischer Funktionen mit einem pseudo-null-Wert als Argument.
    • CVE-2020-1752 — Zugriff auf freigegebenen Speicher (use-after-free) in der Funktion glob beim Entpacken von Verweisen auf das Home-Verzeichnis („~user“) in Pfaden.
    • CVE-2020-6096 — falsche Verarbeitung auf der ARMv7-Plattform von negativen Werten des Parameters in memcpy() und memmove(), der die GrĂ¶ĂŸe des zu kopierenden Bereichs definiert. Ermöglicht die AusfĂŒhrung von Code bei der Verarbeitung von in memcpy() und memmove() auf bestimmte Weise formatierten Daten. Es ist bemerkenswert, dass das Problem fast zwei Monate nach der öffentlichen Offenlegung und fĂŒnf Monate nach der Benachrichtigung der Entwickler von Glibc nicht behoben blieb.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster