In der Bibliothek libcue, die zur Analyse von Metadaten bezüglich der Reihenfolge und der Dauer von Audiospuren verwendet wird, wurde eine Schwachstelle (CVE-2023-43641) entdeckt, die eine Codeausführung beim Verarbeiten von speziell gestalteten Cue-Dateien ermöglicht. Diese Bibliothek wird in verschiedenen Multimedia-Playern und Audio-Editoren, einschließlich Audacious, eingesetzt und kann zur Kompromittierung eines Systems führen, wenn nicht geprüfte Daten geöffnet werden.
Darüber hinaus wird die Bibliothek libcue im Suchalgorithmus tracker-miners verwendet, der in der Benutzerumgebung GNOME eingesetzt wird. Da tracker-miners automatisch neue Multimedia-Dateien im Benutzerverzeichnis indexiert, genügt es für einen Angriff auf Systeme mit GNOME und zur Ausführung von Code durch Angreifer, wenn der Benutzer einfach eine speziell gestaltete Datei in das Verzeichnis ~/Downloads, ~/Music oder ~/Videos lädt, ohne sie öffnen zu müssen (in einigen Fällen reicht ein Klick auf einen Link im Browser aus).
Die Entdecker der Sicherheitslücke haben einen funktionsfähigen Exploit erstellt und die Möglichkeit demonstriert, Umgebungen auf Basis von Ubuntu 23.04 und Fedora 38 auszunutzen. Der Code des Exploits wird später veröffentlicht, um den Nutzern Zeit zu geben, das Update zur Behebung der Lücke zu installieren. Der Exploit ist stabil, erfordert jedoch Anpassungen für jede Distribution.
Die Sicherheitslücke wird durch einen Überlauf von Ganzzahlen im Code zur Analyse des INDEX-Parameters verursacht und tritt auf, wenn in diesem Parameter zu große numerische Werte angegeben werden, die nicht im Typ „int“ untergebracht werden können. Zur Umwandlung der Zeichenfolge in eine Zahl wird die Funktion atoi verwendet; zum Beispiel wird die Angabe der Zahl 4294567296 in -400000 umgewandelt. Die Sicherheitslücke entsteht durch das Fehlen einer Überprüfung des erhaltenen Wertes darauf, dass er negativ sein könnte. In der Folge wird im Code nach der Ausführung von atoi die Operation „track->index[i] = ind“ durchgeführt, wobei „i“ eine negative Zahl zugewiesen werden kann, um einen Speicherbereich außerhalb des Puffers mit dem Wert „ind“ zu überschreiben, der ebenfalls aus der verarbeiteten Datei geladen wird.
In den meisten Distributionen mit GNOME wird die Komponente tracker-miners standardmäßig aktiviert und als zwingende Abhängigkeit für den Dateimanager Nautilus (GNOME Files) geladen. Um tracker-miners für den aktuellen Benutzer zu deaktivieren, können folgende 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
