In der Bibliothek libcue, die zur Analyse von Metadaten zu Dauer und Reihenfolge von Audiotracks verwendet wird, wurde eine Schwachstelle (CVE-2023-43641) entdeckt, die es ermöglicht, Code auszuführen, wenn speziell gestaltete Cue-Dateien verarbeitet werden. Diese Bibliothek wird in einigen Multimedia-Playern und Audioeditoren, einschließlich Audacious, verwendet und kann ein System gefährden, wenn unüberprüfte Daten geöffnet werden.
Darüber hinaus wird die Bibliothek libcue auch in der Suchmaschine tracker-miners verwendet, die im Benutzerumfeld GNOME eingesetzt wird. Da tracker-miners automatisch neue Multimedia-Dateien im Home-Verzeichnis indiziert, genügt es, dass der Benutzer eine speziell gestaltete Datei in die Verzeichnisse ~/Downloads, ~/Music oder ~/Videos hochlädt, um Systeme mit GNOME anzugreifen und die Ausführung von Code durch einen Angreifer zu ermöglichen, ohne dass die Datei geöffnet werden muss (in einigen Fällen reicht es aus, auf einen Link im Browser zu klicken).
Die Forscher, die die Schwachstelle entdeckt haben, haben einen funktionierenden Exploit vorbereitet und die Möglichkeit demonstriert, Umgebungen mit Ubuntu 23.04 und Fedora 38 auszunutzen. Der Code des Exploits wird später veröffentlicht, um den Benutzern Zeit zu geben, das Update zur Behebung der Schwachstelle zu installieren. Der Exploit ist stabil, erfordert jedoch Anpassungen für jede Distribution.
Die Schwachstelle wird durch einen ganzzahligen Überlauf im Code der Analyse des Parameters INDEX verursacht und tritt auf, wenn in diesem Parameter zu große numerische Werte angegeben werden, die nicht in den Typ 'int' passen. Zum Umwandeln von Strings in Zahlen wird die Funktion atoi verwendet; zum Beispiel wird die Zahl 4294567296 in -400000 umgewandelt. Die Schwachstelle entsteht direkt durch das Fehlen einer Überprüfung, ob der erhaltene Wert negativ sein kann. Folglich führt die Codezeile nach der Umwandlung durch atoi die Operation 'track->index[i] = ind' aus, wobei 'i' einen negativen Wert zugewiesen bekommen kann, um den Speicherbereich außerhalb des Buffers mit dem Wert 'ind' zu überschreiben, der ebenfalls aus der verarbeiteten Datei geladen wird.
In den meisten Distributionen mit GNOME wird der Tracker-Minutenstandardstandardmäßig aktiviert und als harte Abhängigkeit zum Dateimanager Nautilus (GNOME Files) geladen. Um Tracker-Minuten für den aktuellen Benutzer zu deaktivieren, können die folgenden Befehle verwendet werden: systemctl —user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service tracker reset —hard
Quelle: opennet.ru
