ClickCease CVE-2021-38604 - Eine neue Sicherheitslücke in der Glibc | tuxcare.com

Abonnieren Sie unseren beliebten Newsletter

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

TuxCare Team identifiziert CVE-2021-38604, eine neue Sicherheitslücke in glibc

13. August 2021. TuxCare PR Team

Das TuxCare-Team ist für die Durchführung eingehender Analysen neuer CVEs verantwortlich. Dies geschieht für jedes neue CVE, das auftaucht und direkt oder indirekt das Linux-Ökosystem betrifft. Wir prüfen, ob die Distributionen, für die wir Dienstleistungen anbieten, betroffen sind. Wenn ein solches CVE die unterstützten Distributionen betrifft, krempeln die Teammitglieder die Ärmel hoch und beginnen, sich mit dem Code zu befassen.

Während der Durchführung dieser Arbeit auf CVE-2021-33574, Nikita Popov, einer unserer Team-Mitglieder, identifiziert ein Problem mit dem Upstream-glibc. Es stellte sich heraus, dass es möglich ist, eine Situation herbeizuführen, in der ein Segmentierungsfehler in einem bestimmten Codepfad innerhalb der Bibliothek ausgelöst werden könnte. Dies kann wiederum dazu führen, dass die Anwendung, die die Bibliothek verwendet, abstürzt, was zu einem Denial-of-Service-Problem führt.

Denken Sie daran, dass die glibc die wichtigsten Systemprimitiven bereitstellt und mit den meisten, wenn nicht allen anderen Linux-Anwendungen verknüpft ist, einschließlich anderer Sprachcompiler und Interpreter. Sie ist die zweitwichtigste Komponente eines Systems nach dem Kernel selbst.

Dieses Problem wurde mit dem ursprünglichen Upstream-Fix für CVE-2021-33574 eingeführt, insbesondere in der Datei mq_notify.c:

 

@@ -133,8 +133,11 @@ helper_thread (void *arg)
            (void) __pthread_barrier_wait (&notify_barrier);
        }
      else if (data.raw[NOTIFY_COOKIE_LEN – 1] == NOTIFY_REMOVED)
–       /* The only state we keep is the copy of the thread attributes.  */
–       free (data.attr);
+       {
+         /* The only state we keep is the copy of the thread attributes.  */
+         pthread_attr_destroy (data.attr);
+         free (data.attr);
+       }

 

Während der free() -Aufruf immun gegen die Übergabe von NULL-Zeigern ist, gilt dies für pthread_attr_destroy() nicht. Es war möglich, zwei Situationen zu identifizieren, in denen der Linux-Kernel die Nachricht NOTIFY_REMOVED verwendet und dabei kopierte Thread-Attribute im data.attr-Feld weitergibt. Leider ist eine Host-Anwendung in der Lage, dort einen NULL-Wert zu übergeben, wenn sie möchte, dass die Glibc einen Thread mit Standardattributen erzeugt. In diesem Fall würde die Glibc einen NULL-Zeiger in pthread_attr_destroy dereferenzieren, was zu einem Absturz des gesamten Prozesses führen würde.

Gemäß den Richtlinien zur verantwortungsvollen Offenlegung wurden sowohl die Schwachstelle als auch die Codekorrektur an das für glibc zuständige Team übermittelt, und ein CVE wurde bei Mitre beantragt (CVE-2021-38604). In glibc wurde sie als Fehler 28213 zugewiesen. Dieser wurde bereits in die Upstream-Glibc integriert.

Ein neuer Test wurde auch an die automatisierte Test-Suite der Glibc geschickt, um diese Situation zu erkennen und in Zukunft zu verhindern. Manchmal können Änderungen in nicht zusammenhängenden Codepfaden dazu führen, dass sich das Verhalten an anderer Stelle im Code ändert und der Programmierer sich dessen nicht bewusst ist. Dieser Test wird diese Situation auffangen.

Die Familie der "mq_"-Funktionen bietet POSIX-konforme Message-Queue-API-Funktionen und asynchrone Benachrichtigungen über eingehende Nachrichten und wird in der Regel für die Kommunikation zwischen Prozessen verwendet.

 

Einschlägige Links:

https://sourceware.org/git/?p=glibc.git;a=commit;h=42d359350510506b87101cf77202fefcbfc790cb

https://sourceware.org/bugzilla/show_bug.cgi?id=28213

Möchten Sie das Patchen von Sicherheitslücken ohne Kernel-Neustart, Systemausfallzeiten oder geplante Wartungsfenster automatisieren?

Erfahren Sie mehr über Live-Patching mit TuxCare

Werden Sie ein TuxCare-Gastautor

Los geht's

E-Mail

Beitreten

4,500

Linux & Open Source
Fachleute!

Abonnieren Sie
unseren Newsletter