Maximaler CVSS-Score: Kritische libwebp-Sicherheitslücke wird aktiv ausgenutzt
Google hat eine kritische Sicherheitslücke in der libwebp-Bildbibliothek, die für das Rendern von WebP-Bildern verwendet wird, mit der CVE-Kennung CVE-2023-5129 versehen. Diese Schwachstelle wird aktiv in der freien Wildbahn ausgenutzt. Im CVSS-Bewertungssystem erhielt sie die maximale Schweregradbewertung von 10,0. Die Schwachstelle liegt im Huffman-Kodierungsalgorithmus und wurde als hochriskantes Problem identifiziert.
Mit einer speziell gestalteten verlustfreien WebP-Datei kann libwebp Daten außerhalb der Grenzen in den Heap schreiben. Die Funktion ReadHuffmanCodes() weist dem HuffmanCode-Puffer eine Größe zu, die aus einem Array von vorberechneten Größen stammt: kTableSize. Der Wert color_cache_bits legt fest, welche Größe zu verwenden ist. Das Array kTableSize berücksichtigt nur Größen für 8-Bit-Tabellen-Lookups der ersten Ebene, nicht aber für Second-Level-Tabellen-Lookups. libwebp erlaubt Codes bis zu 15-Bit (MAX_ALLOWED_CODE_LENGTH). Wenn BuildHuffmanTable() versucht, die Tabellen der zweiten Ebene zu füllen, kann es sein, dass Daten außerhalb des zulässigen Bereichs geschrieben werden. Der OOB-Schreibvorgang in das unterdimensionierte Array erfolgt in ReplicateValue.
Nach Veröffentlichung von Fixes durch Apple, Google und Mozilla für die Schwachstellen CVE-2023-41064 und CVE-2023-4863, welche die Ausführung von beliebigem Code durch die Verarbeitung speziell gestalteter Bilder ermöglichen, wird vermutet, dass beide Schwachstellen auf dasselbe Problem in der Bibliothek zurückzuführen sind.
Laut Citizen Lab soll CVE-2023-41064 mit 2023-41061 als Teil einer Zero-Click-iMessage-Exploit-Kette namens BLASTPASS verkettet worden sein, um eine Söldner-Spyware namens Pegasus einzusetzen. Weitere technische Details sind derzeit nicht bekannt.
Die Entscheidung, CVE-2023-4863 fälschlicherweise als Schwachstelle in Google Chrome einzugrenzen, täuschte jedoch über die Tatsache hinweg, dass auch praktisch jede andere Anwendung betroffen ist, die auf die libwebp-Bibliothek zur Verarbeitung von WebP-Bildern angewiesen ist. Dies deutet darauf hin, dass die Auswirkungen größer sind als bisher angenommen.
Eine kürzliche Analyse von Rezillion brachte eine lange Liste von weit verbreiteten Anwendungen, Code-Bibliotheken, Frameworks und Betriebssystemen zu Tage, die durch CVE-2023-4863 verwundbar sind. „Dieses Paket zeichnet sich durch seine Effizienz aus und übertrifft JPEG und PNG in Bezug auf Größe und Geschwindigkeit“, so das Unternehmen. “ Infolgedessen hat eine Vielzahl von Software, Anwendungen und Paketen diese Bibliothek übernommen, oder sogar Pakete übernommen, die in Abhängigkeit zu libwebp stehen. „Die schiere Verbreitung von libwebp vergrößert die Angriffsfläche erheblich, was sowohl für Nutzer als auch für Unternehmen Anlass zu ernsthaften Bedenken gibt.“
Die Enthüllung erfolgt gerade, als Google mit der Veröffentlichung von Version 15572.50.0 (Browserversion 117.0.5938.115) die Fixes für CVE-2023-4863 auf den Stable-Channel für ChromeOS und ChromeOS Flex ausweitet.
Sie folgt auch auf neue Details, die von Google Project Zero bezüglich der Ausnutzung von CVE-2023-0266 und CVE-2023-26083 im Dezember 2022 veröffentlicht wurden. Kommerzielle Spyware-Anbieter haben wohl Android-Geräte von Samsung in den Vereinigten Arabischen Emiraten angegriffen, um willkürlichen Lese-/Schreibzugriff zu erhalten. Es wird vermutet, dass die Schwachstellen zusammen mit drei weiteren Schwachstellen – und CVE-2022-4262, CVE-2022-3038, CVE-2022-22706 – von einem Kunden oder Partner eines spanischen Spyware-Unternehmens namens Variston IT genutzt wurden.
„Besonders bemerkenswert ist auch, dass dieser Angreifer eine Exploit-Kette mit mehreren Fehlern in Kernel-GPU-Treibern erstellt hat“, so Sicherheitsforscher Seth Jenkins. „Diese Android-Treiber von Drittanbietern weisen einen unterschiedlichen Grad an Codequalität und Wartung auf, was eine bemerkenswerte Gelegenheit für Angreifer darstellt.“