So finden und beheben Sie die kritische WebP-Zero-Day-Sicherheitslücke CVE-2023-4863
5. Oktober 2023
0 Min. LesezeitIm vergangenen Monat wurden zwei kritische Sicherheitslücken (CVE-2023-4863 und CVE-2023-5129) von Apple Security Engineering and Architecture (SEA) in Zusammenarbeit mit The Citizen Lab an der Munk School der University of Toronto entdeckt. Die Sicherheitslücken betrafen manipulierte WebP-Bilder, die Chromium-basierte Browser und die von Google bereitgestellte Bibliothek webmproject/libwebp ausnutzen konnten. Weitere Informationen zur Sicherheitslücke und ihrer jüngsten Geschichte finden Sie in unserem vorherigen Blogbeitrag.
Die libwebp-Sicherheitslücke betrifft nicht nur Browser, sondern auch Entwickler-Ökosysteme, Betriebssysteme und Container. Hier finden Sie alle Ökosysteme und Container, die unserer Analyse zufolge von libwebp betroffen sind:

Das Ausmaß der Auswirkungen dieser Sicherheitslücke zeigt sich daran, dass sie in verschiedenen Entwickler-Ökosystemen sowohl als direkte als auch als transitive Abhängigkeit erkannt wird. In Cocoapods-, Swift- und Python-Projekten tritt sie vor allem als transitive Abhängigkeit auf. Dadurch ist es für Entwickler schwieriger, sich der Auswirkungen bewusst zu sein. Sowohl Snyk Container als auch Snyk Open Source erkennen die relevanten Pakete. Sie können Snyk jetzt kostenlos nutzen, um herauszufinden, welche Ihrer Projekte diese Pakete enthalten.

Wir haben zwar eine umfassende Analyse der Auswirkungen von libwebp durchgeführt, doch Sicherheitsexperten untersuchen weiterhin die verschiedenen Einsatzbereiche von libwebp in Anwendungen, Ökosystemen und Betriebssystemen. Da die Sicherheitslücke Softwarekomponenten betrifft, die .webp-Bildcodecs verwenden und deren Inhalte darstellen (etwa Browser und Design-Tools), wird sich der Umfang weiter vergrößern. Daher ist es entscheidend, sich über die neuesten Nachrichten zu libwebp auf dem Laufenden zu halten.
Dieser Blogbeitrag soll Ihnen ein besseres Verständnis dafür vermitteln, welche Auswirkungen die Sicherheitslücke auf Software-Ökosysteme hat, und als schnelle Orientierungshilfe für ihre Behebung dienen.
Am 3. Oktober 2023 gehörten zu den CVEs, mit denen diese libwebp-Sicherheitslücke aktiv erfasst wurde:
CVE-2023-4863: Am 11. September 2023 eröffnet, mit einem CVSS-Score von
9.6und einem EPSS-Score von 31.86 % (97. Perzentil). Hinweis: Vor der Veröffentlichung weiterer Details wurde diese CVE ursprünglich mit8.8(„Hoch“) bewertet.CVE-2023-5129: Am 25. September 2023 eröffnet, mit einem CVSS-Score von
10(dem höchstmöglichen Wert); am 27. September 2023 wurde sie von Google, der zuständigen CVE-Nummerierungsstelle, als Duplikat abgelehnt.
Weitere Informationen zur Sicherheitslücke und ihrer jüngsten Geschichte finden Sie in unserem vorherigen Blogbeitrag. In diesem Beitrag sehen wir uns folgende Empfehlungen zur Behebung an:
Ermitteln Sie, wo Sie
libwebpverwendenAktualisieren Sie auf
libwebp1.3.2 oder höherÜberwachen Sie Projekte mithilfe der Auto-PR-Funktion
1. Ermitteln Sie, wo Sie libwebp verwenden
Bei einer Zero-Day-Sicherheitslücke ist es am schwierigsten festzustellen, ob und wo Sie betroffen sind. Bei libwebp ist das nicht anders. libwebp kann in Ihrem Projekt als Abhängigkeit vorkommen – entweder direkt oder indirekt als transitive Abhängigkeit. Eine Ermittlung ist daher entscheidend, damit Sie das Problem richtig beheben können. Es ist sehr wahrscheinlich, dass Sie in gewissem Umfang betroffen sind, ohne es zu wissen. Zu den möglichen Auswirkungen zählen:
Jede von Ihnen entwickelte Software, die direkt von der Bibliothek
libwebpoder indirekt über transitive Abhängigkeiten abhängt, ist von der Sicherheitslücke betroffen.Jede von Ihnen verwendete Software, die .webp-Bilder kodiert und/oder dekodiert, ist von der Sicherheitslücke betroffen.
Alle Betriebssysteme und Container-Images, die Tools zur Verarbeitung von .webp-Bildern enthalten, sind von der Sicherheitslücke betroffen.
Ein Grund für die weitreichenden Auswirkungen dieser Sicherheitslücke auf Entwickler-Ökosysteme ist, dass Programmiersprachen auf höherer Ebene die zugrunde liegende Bibliothek libwebp verwenden. So hängt die GoDot Game Engine, mit der 2D- und 3D-Spiele erstellt werden, von der libwebp-Bibliothek ab. Auch das weit verbreitete FFmpeg-Tool nutzt die libwebp-Bibliothek.
Die libwebp-Sicherheitslücke mit Snyk erkennen
Mit Snyk können Sie die libwebp-Sicherheitslücke auf verschiedene Arten kostenlos erkennen. Mit der Snyk CLI können Sie Ihre Projekte lokal testen:
Führen Sie für Anwendungen in der Snyk CLI
snyk test --unmanagedaus, um nicht verwaltete Abhängigkeiten in Ihrem Repository zu vergleichen und einzelne Pakete sowie ihre Sicherheitslücken zu erkennen.Führen Sie für Container
snyk container testaus, um Betriebssystempakete zu erkennen, die von anfälligen Versionen vonlibwebpabhängen.
Sie können auch alle Projekte in Ihren Git-Repositories scannen und erhalten so einen Bericht über alle direkten und transitiven Abhängigkeiten, die Sie verwenden. In diesem Bericht sehen Sie, ob Sie auf libwebp angewiesen sind und in wie vielen Pfaden Ihres Abhängigkeitsgraphen die Bibliothek verwendet wird. Sie können auch alle Projekte schnell nach „CVE-2023-4863“ durchsuchen.

2a. Aktualisieren Sie auf libwebp 1.3.2 oder höher (Open Source)
Automatische Behebung: Verbinden Sie Snyk mit Ihren Git-Repositories, damit Snyk nach Möglichkeit Pull Requests zur Aktualisierung Ihres Abhängigkeitsgraphen erstellen kann. Erstellen Sie anschließend Ihre Anwendung neu.
Manuelle Behebung: Wenn Sie
libwebpals direkte Abhängigkeit in Ihrer Anwendung verwenden, können Sie die Abhängigkeitsdatei direkt auf Version1.3.2oder höher aktualisieren. Erstellen Sie anschließend Ihre Anwendung neu.Manuelle Behebung: Wenn Sie
libwebpals transitive Abhängigkeit in Ihrer Anwendung verwenden, ermitteln Sie eine Version Ihrer direkten Abhängigkeit, die die transitive Abhängigkeitlibwebpin Version1.3.2oder höher einbindet. Erstellen Sie anschließend Ihre Anwendung neu.
2b. Aktualisieren Sie auf libwebp 1.3.2 oder höher (Container)
Automatische Behebung: Verbinden Sie Snyk mit Ihren Git-Repositories, damit Snyk nach Möglichkeit Pull Requests zur Aktualisierung des Basis-Images Ihrer Dockerfile erstellen kann. Prüfen Sie unter
https://snyk.io/test/docker/<image_name>, ob das vorgeschlagene Basis-Image-Upgrade weiterhin die Sicherheitslücke aufweist. Erstellen Sie Ihren Container neu, sobald Sie einen geeigneten Upgrade-Pfad gefunden haben.Manuelle Behebung: Wenn Ihr Image eine anfällige Version von
libwebpenthält und kein Upgrade des Basis-Images verfügbar oder erwünscht ist, können Sie die Version mithilfe der Behebungsempfehlungen von Snyk Container selbst aktualisieren. Beispiel: Wenn Snyk Container CLI bei einem Debian-basierten Image Folgendes meldet:
Sie könnten beispielsweise Folgendes hinzufügen, um die Bibliothek manuell zu aktualisieren:
3. Überwachen Sie Projekte mithilfe der Auto-PR-Funktion
Da es sich um eine Zero-Day-Sicherheitslücke handelt, werden täglich neue Auswirkungen entdeckt. Daher ist es wichtig, Ihre Projekte regelmäßig aktiv auf neue Empfehlungen zur Behebung des Problems zu überwachen. Wenn Sie Snyk verwenden, sollten Sie die Überwachung Ihrer Projekte aktivieren (standardmäßig aktiviert, wenn Sie ein Repository in die Snyk-App importieren). Dadurch testet Snyk Ihre Projekte täglich automatisch zusätzlich zu den weiteren Tests, die bei Änderungen ausgeführt werden.
Bei diesen täglichen Tests wird automatisch erkannt, wo Sicherheitsverbesserungen möglich sind und neue Korrekturen angewendet werden können. Wenn Sie beispielsweise libwebp als transitive Abhängigkeit von package A verwenden, muss package A eine Version veröffentlichen, die libwebp in Version 1.3.2 oder höher nutzt. Diese Version ist möglicherweise heute noch nicht verfügbar, wird aber vielleicht morgen oder nächste Woche veröffentlicht. Mit snyk monitor werden Ihre Projekte täglich getestet. Sobald das neue Upgrade verfügbar ist, erhalten Sie einen PR, der die Version von libwebp aktualisiert und so die Sicherheitslücke behebt.
Beachten Sie außerdem, dass Snyk Sie über PRs oder auf anderem Weg benachrichtigt, wenn weitere Korrekturen für diese Sicherheitslücke bereitgestellt oder neue Angriffsvektoren entdeckt werden, die weitere Sicherheitslücken offenlegen. So erfahren Sie als Erste, was zu tun ist, falls weitere Probleme auftreten.
Sichern Sie Ihre Apps, die libwebp verwenden
Snyk erstellt Fix-PRs mit nur einem Klick für Anwendungen, die libwebp als direkte oder transitive Abhängigkeit verwenden.
