Skip to main content

Buffer Overflow in Chromium betrifft mehrere Pakete

Artikel von
Blog illustrations vul profile

23. November 2020

0 Min. Lesezeit

Willkommen beim Snyk Monthly Vulnerability Profile. In dieser Reihe blickt Snyk auf Schwachstellen zurück, die von unserem Security Research Team entdeckt oder diesem gemeldet wurden. Wir wählen eine bemerkenswerte Schwachstelle aus dem vergangenen Monat aus und erzählen die Geschichte ihrer Entdeckung, Analyse und Offenlegung. Dabei stellen wir die Forschenden, Entwickler und Nutzer vor, die dazu beitragen, Schwachstellen in der Open-Source-Community zu erkennen und zu beheben.

Diesen Monat beschäftigen wir uns mit einer Buffer-Overflow-Schwachstelle im von Chromium verwendeten FreeType-Paket und damit, wie Snyk anschließend Open-Source-Pakete identifiziert hat, die durch die Einbindung anfälliger Chromium-Komponenten betroffen sind.


Schwachstelle: Buffer Overflow in FreeType

Zugewiesene CVEs: CVE-2020-15999

Snyk-Analysten: Mehrere

Entdeckt von: Sergei Glazunov von Google Project Zero

Am 2. November 2020 wurde CVE-2020-15999 in der National Vulnerability Database veröffentlicht. Die Meldung betrifft eine Buffer-Overflow-Schwachstelle im FreeType-Paket zur Darstellung von Schriftarten, das vom Chromium-Browser verwendet wird. Laut einem Blog-Beitrag auf der Website des Chromium-Projekts wurde die Schwachstelle erstmals am 19. Oktober 2020 gemeldet. In der ersten Beschreibung der Schwachstelle heißt es:

Eine Schwachstelle besteht in der Funktion `Load_SBit_Png`, die PNG-Bilder verarbeitet, die in Schriftarten eingebettet sind. Diese Funktion:

1) Liest die Bildbreite und -höhe als 32-Bit-Ganzzahlen aus dem Header aus.

2) Kürzt die ausgelesenen Werte auf 16 Bit und speichert sie in einer `TT_SBit_Metrics`-Struktur.

3) Verwendet die gekürzten Werte, um die Bitmap-Größe zu berechnen.

4) Reserviert einen Speicherbereich dieser Größe.

5) Übergibt `png_struct` und den Speicherbereich an eine libpng-Funktion.

Das Problem besteht darin, dass libpng die ursprünglichen 32-Bit-Werte verwendet, die in `png_struct` gespeichert sind. Ist die ursprüngliche Breite und/oder Höhe größer als 65535, reicht der reservierte Puffer daher nicht aus, um die Bitmap aufzunehmen.

Buffer-Overflow-Schwachstellen können es Angreifern ermöglichen, Heap-Speicher zu beschädigen oder zu manipulieren. Dadurch können Angreifer eine schädliche Payload erstellen, die beliebigen Code auf dem anfälligen System ausführt.

Die Auswirkungen auf Open Source verstehen

Das Snyk Security Research Team beobachtet regelmäßig Schwachstellenmeldungen und untersucht mögliche Auswirkungen auf die Open-Source-Community. Im Fall des Chromium-Browsers werden vom Chromium-Projekt veröffentlichte Komponenten häufig in Open-Source-Paketen eingesetzt, um Web-Funktionalität bereitzustellen. Nach der Offenlegung der Buffer-Overflow-Schwachstelle begann das Snyk Research Team daher mit der Suche nach Open-Source-Paketen, die anfällige Versionen der Chromium-Komponente enthielten.

Im Rahmen der Recherche konnte das Snyk-Team schließlich sechs Pakete in mehreren Ökosystemen identifizieren, die von der Schwachstelle im FreeType-Paket betroffen waren. Sie sind in der folgenden Tabelle aufgeführt:

Paket

Ökosystem (Paketmanager)

Snyk-Schwachstellen-ID

cefsharp.wpf.hwndhost

.Net (NuGet)

SNYK-DOTNET-CEFSHARPWPFHWNDHOST-1023310

cefsharp.wpf

.Net (NuGet)

SNYK-DOTNET-CEFSHARPWPF-1023309

cefsharp.winforms

.Net (NuGet)

SNYK-DOTNET-CEFSHARPWINFORMS-1023307

cefsharp.common

.Net (NuGet)

SNYK-DOTNET-CEFSHARPCOMMON-1023308

electron 

JavaScript (npm)

SNYK-JS-ELECTRON-1021884

org.webjars.npm:electron

Java (Maven)

SNYK-JAVA-ORGWEBJARSNPM-1021885

Bei den vier identifizierten .Net-Komponenten handelt es sich um Steuerelemente, die direkt vom Chromium-Projekt bereitgestellt werden. Es wurden zwar aktualisierte Versionen veröffentlicht, die die Schwachstellen beheben. Entwickler, die diese Komponenten in ihren Anwendungen oder Services verwenden, müssen jedoch auf die neuen Versionen aktualisieren, um die Schwachstelle zu beheben. 

Außerdem stellte Snyk fest, dass sowohl die JavaScript- als auch die Java-Version des Electron-Frameworks anfällige Chromium-Komponenten verwenden. Electron ist ein beliebtes Framework, das in vielen bekannten Anwendungen wie Discord zum Einsatz kommt. Ende Oktober wurden Aktualisierungen für das Electron-Framework vorgenommen und neue Versionen veröffentlicht. Auch hier müssen Entwickler, die das Framework verwenden, auf die neue Version aktualisieren, um die Schwachstelle aus ihrer Software zu entfernen.

Rückblick 

Die Entdeckung dieser Buffer-Overflow-Schwachstelle zeigt einmal mehr, wie das Snyk Security Research Team die Sicherheitslage der Open-Source-Community insgesamt verbessert. Wenn hochkarätige anfällige Pakete wie Chromium als Abhängigkeiten in anderen Projekten aufgespürt werden, können Schwachstellen offengelegt werden und Open-Source-Maintainer sie in ihrer Software beheben.

Außerdem kann Snyk so sicherstellen, dass unsere Vulnerability Database möglichst umfassende Informationen enthält. Dadurch können Entwickler Open-Source-Sicherheit nutzen und erfahren, wenn Abhängigkeiten in ihrer Software Schwachstellen aufweisen.

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.

Weiterlesen

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Ihr Schwachstellen-Backlog ist keine technische Schuld mehr, sondern eine Angriffsfläche

Ein wachsender Schwachstellen-Backlog ist mehr als eine technische Altlast: Er ist eine Angriffsfläche. Erfahren Sie, warum veraltete Risikoeinschätzungen, automatisierte Angreifer und verkettete Findings einen neuen Ansatz erfordern.