Tipps zu den jüngsten kritischen Schwachstellen libwebp und libvpx
Hintergrund
In den letzten Wochen, hat Google Updates für Google Chrome veröffentlicht, die Fehlerbehebungen für die Schwachstellen CVE-2023-4863 und CVE-2023-5217 enthielten. Beide Schwachstellen wurden als Zero-Day-Schwachstellen entdeckt, die im freien Internet ausgenutzt wurden. Die CVE-Einträge wurden aktualisiert, um den Geltungsbereich von Google Chrome auf die zugrunde liegenden Bibliotheken – libwebp und libvpx – zu erweitern. Beide CVEs erscheinen im Katalog bekannter ausgenutzter Schwachstellen von CISA.
In diesem Blogbeitrag geben wir die Details zu beiden Schwachstellen bekannt und bieten Empfehlungen, wie Sie anfällige Anwendungen in Ihrem Netzwerk erkennen können. Da diese Schwachstellen ständig weiter erforscht werden, könnte dieser Beitrag in Zukunft mit weiteren Erkenntnissen und Tipps aktualisiert werden.
CVE-2023-4863 – libwebp
Diese Schwachstelle wurde vom SEAR-Team (Security Engineering and Architecture) von Apple und vom Citizen Lab gemeldet. Auf der Grundlage dieses Berichts haben Forscher die Schwachstelle mit der BLASTPASS-Attacke in Verbindung gebracht – ein Zero-Click-Zero-Day-Exploit der NSO Group für iPhones.
Die Schwachstelle selbst ist ein Heap-Überlauf in libwebp, der beim Dekodierungsprozess von webp-Bilder im verlustfreien Format auftritt. Ben Hawkes schrieb eine sehr detaillierte technische Analyse der Schwachstelle.
Libwebp ist eine Bibliothek, die von Google entwickelt wurde, um Bilder im WebP-Format (ebenfalls von Google) zu kodieren und zu dekodieren. Die Schwachstelle tritt bei der der Analyse von Bildern mit verlustfreier Komprimierung in der Bibliothek auf, die Huffman-Kodierungstabellen verwendet. Ein Angreifer kann die Tabellen so manipulieren, dass die Bibliothek den Tabellen weniger Speicher als ihre tatsächliche Größe zuweist. Dies führt zu einem Heap-Überlauf und einem Out-of-Bounds-Schreibvorgang.
Es gibt viele Möglichkeiten und Konfigurationen, um diese Ergebnisse zu erzielen, daher gibt es keinen eindeutigen Proof of Concept (PoC). Sie können sich jedoch den PoCvon @mistymntncop als Beispiel für die Umsetzung der Ausnutzung der Schwachstelle ansehen.
CVE-2023-5217 – libvpx
Diese Schwachstelle wurde von Clément Lecigne der Threat Analysis Group von Google entdeckt. Diese Schwachstelle wurde auch von einem kommerziellen Anbieter von Überwachungsdiensten verwendet.
Libvpx ist auch Teil des WebP-Projekts. Die Bibliothek befasst sich insbesondere mit den Formaten VP8 und VP9 zur Videocodierung und -decodierung. Es gibt weniger Informationen zu dieser Schwachstelle, aber es ist bekannt, dass es sich auch um eine Schwachstelle durch Heap-Beschädigung handelt.
Was genau ist anfällig?
Anfangs wurden nur Browser als anfällig gemeldet, da es sich um Schwachstellen in Chromium handelte. Da die Schwachstelle jedoch in den zugrunde liegenden Bibliotheken libwebp und libvpx liegt, ist der Wirkungsbereich viel größer: Anwendungen, die libwebp-Versionen 0.50 bis 1.3.1 und Anwendungen, die eine libvpx-Version vor 1.13.1 verwenden, sind betroffen.
Wir haben basierend auf öffentlich zugänglichen Berichten eine Liste von Anwendungen zusammengestellt, die auf einer der Bibliotheken basieren. Dort sind außerdem Programme mit der Bibliothek aufgeführt, die wir mit unseren Insight-Abfragen entdeckt haben. Das bedeutet nicht, dass sie zwingend anfällig sind.
Damit ein Programm anfällig ist, muss es die verlustfreie WebP-Funktion von libwebp oder die V8- oder V9-Codecs mit libvpx verwenden. Da diese Bibliotheken für völlig unterschiedliche Funktionen und Funktionen verwendet werden können, ist ihre Verwendung nicht immer eine Schwachstelle.
Wir wissen, dass Webbrowser diese Funktionen nutzen, aber bei anderen Programmen verlassen wir uns auf die Informationen des Anbieters. Wir haben festgestellt, dass die folgenden Browser und andere Anwendungen die betroffenen Bibliotheken verwenden:
- Fedora (37–39)
- Debian (10–12)
- Google Chrome
- Firefox
- Microsoft Edge
- Opera
- Tor
- Brave
- Vivaldi
- Telegram
- Discord
- 1Password
- Electron
- GIMP
- Slack
- LibreOffice
- Skype
- Grafana
- KeePassXC
- VLC
Zusätzlich hat eine anonyme Person die Paketspeicher von Ubuntu analysiert und eine Liste aller Pakete, die auf libvpx7 basieren, zur Verfügung gestellt.
Schwachstellenerkennung – OSquery
Da sich die Bibliothek an vielen verschiedenen Orten befindet und Softwareanbieter sich um die Aktualisierung ihrer Produkte kümmern müssen, ist es wichtig, den Umfang der Schwachstelle und die Gefährdung von Geräten in Ihrem Netzwerk zu kennen. Wir haben dazu mehrere nützliche OSquery-Abfragen entwickelt. Kunden von Akamai Guardicore Segmentation können die Insight-Funktion verwenden, um diese Abfragen über in ihrem Netzwerk auszuführen.
libweb and libvpx im Speicher geladen
Da die Bibliotheken in jeder beliebigen Anwendung enthalten sein können, ist es nicht ausreichend, sie auf der Festplatte zu suchen. Stattdessen können wir die geladenen Module (DLL- oder SO-Dateien) in jedem laufenden Prozess mithilfe der OSquery-Tabelle process_memory_map suchen und versuchen, die Version über die Datei-Tabelle zu ermitteln.
Da Versionsmetadaten während des Kompilierungsprozesses hinzugefügt werden, sind sie nicht immer verfügbar, da die Bibliothek ohne sie kompiliert werden kann. Selbst wenn die Versionsmetadaten verfügbar sind, sind sie möglicherweise nicht korrekt, da Anbieter stattdessen ihre eigene Softwareversionierung anhängen können. Um False Positives und True Negatives zu vermeiden, ist äußerste Sorgfalt geboten.
SELECT DISTINCT
procs.name AS process_name,
pmm.path AS lib_path,
file.file_version,
CASE
WHEN file_version = '' THEN 'unknown version, potentially vulnerable'
WHEN pmm.path LIKE '%libwebp%' AND file_version < '1.3.2' THEN 'vulnerable version'
WHEN pmm.path LIKE '%libwebp%' AND file_version >= '1.3.2' THEN 'not vulnerable version'
WHEN pmm.path LIKE '%libvpx%' AND file_version <= '1.13.1' THEN 'vulnerable version'
WHEN pmm.path LIKE '%libvpx%' AND file_version > '1.13.1' THEN 'not vulnerable version'
ELSE 'unknown version, potentially vulnerable'
END is_vulnerable
FROM process_memory_map AS pmm
JOIN processes AS procs USING(pid)
JOIN FILE ON file.path = pmm.path
WHERE pmm.path LIKE '%libwebp%' OR pmm.path LIKE '%libvpx%'
Webbrowser suchen
Wir haben eine Abfrage erstellt, um installierte Browser zu erkennen, da der erste CVE-Bericht und der Anwendungsfall von Chromium stammen. Diese Abfrage kann helfen, Assets im Netzwerk zu finden, auf denen Browser ausgeführt werden, und die möglicherweise genauer betrachtet werden sollten. Sie können dann die installierte Version mit der Liste der anfälligen Browserversionen in der National Vulnerability Database (NVD) vergleichen.
SELECT name, version FROM programs
WHERE LOWER(name) LIKE "%chrome%"
OR LOWER(name) LIKE "%firefox%"
OR LOWER(name) LIKE "%microsoft edge%"
OR LOWER(name) LIKE "%thunderbird%"
OR LOWER(name) LIKE "%brave%"
OR LOWER(name) LIKE "%opera%"
Installierte Programme suchen
Um zu prüfen, ob eines der Programme aus der obigen Liste installiert ist, verwenden Sie die folgende Abfrage und ersetzen Sie <program_name> mit dem tatsächlichen Namen des Programms.
SELECT name, version FROM programs
WHERE name LIKE "%<program_name>%"
Abwehr
Zuordnung anfälliger Anwendungen und Assets
Mithilfe der Liste der Anwendungen und Osquery-Abfragen in diesem Blogbeitrag können Sie die potenziell anfälligen Anwendungen in Ihrem Netzwerk zuordnen und eine Liste potenziell anfälliger Assets erstellen.
Kunden von Akamai Hunt erhielten einen Bericht, in dem die Gefährdung ihrer Umgebung durch die Schwachstelle beschrieben wird. Die Berichte von Hunt basierten auf ähnlichen Abfragen wie die in diesem Blogbeitrag und wurden innerhalb weniger Stunden nach Beginn des Vorfalls gesendet. Bei den Abfragen wurden weltweit Tausende gefährdete Assets ermittelt.
Patching
Es gibt viele Parameter, die bei der Beurteilung der Anfälligkeit von Anwendungen berücksichtigt werden: Welche Version von libwebp oder libvpx wird geladen? Verwendet die Anwendung verlustfreie WebP-Komprimierung oder VP8-/VP9-Codecs? Aufgrund der verschiedenen Kombinationen sind viele Anwendungen anfällig und die Auswirkungen können weitreichend sein.
Leider gibt es keinen Patch, der diese Schwachstelle behebt. Das Patching hängt auch davon ab, dass Softwareanbieter die relevanten Patches für ihre Programme veröffentlichen, was einige Zeit in Anspruch nehmen kann. Unternehmen müssen im Laufe der Zeit beurteilen, welche Workloads anfällig und nicht gepatcht sind.
Sensibilität für Bedrohungswarnungen
Da Patches für alle betroffenen Programme noch nicht verfügbar sind, empfiehlt es sich, die Warnungssensibilität für die möglicherweise anfälligen und ungepatchten Workloads zu erhöhen. Auf diese Weise haben Sie immer noch ein gewisses Bewusstsein für die Auswirkungen, selbst wenn die Schwachstelle unentdeckt bleibt und ausgenutzt wird.
Dies kann jedoch zu einem Übermaß an Warnmeldungen führen. Daher empfehlen wir, die Warnsensibilität entsprechend der Bedeutung der betroffenen Workload für das Netzwerk oder ihrer Auswirkungen anzupassen.
Zusammenfassung
In diesem Blogbeitrag haben wir die verfügbaren Informationen über die kritischen Schwachstellen in libwebp und libvpx überprüft, die im freien Internet Wildbahn ausgenutzt wurden.
Für Verteidiger besteht der entscheidende Schritt darin, die Schwachstelle der Workloads in ihrem Netzwerk zu finden. Wir haben versucht, durch OSquery-Abfragen Programme zu erkennen, die diese Bibliotheken verwenden. Wir haben auch besprochen, wie Sie einige Risiken verringern können (d. h. die Warnsensibilität für Bedrohungen anpassen), wenn kein Patching verfügbar ist.
Dieser Blogbeitrag gibt einen Überblick über unser aktuelles Verständnis der verfügbaren Informationen und über unsere Empfehlungen. Unsere Überprüfung läuft und alle hierin enthaltenen Informationen können sich jederzeit ändern. Besuchen Sie auch unser Twitter-Konto für Updates in Echtzeit.