Zwei Sicherheitslücken wurden im Open-Source-Traccar-GPS-Tracking-System offengelegt, die unter bestimmten Umständen von nicht authentifizierten Angreifern ausgenutzt werden könnten, um Remote-Code-Ausführung zu erreichen.

Beide Schwachstellen sind Path-Traversal-Fehler und könnten eingesetzt werden, wenn die Gastregistrierung aktiviert ist, was die Standardkonfiguration für Traccar 5 ist, sagte Naveen Sunkavally, Forscher von Horizon3.ai.

Eine kurze Beschreibung der Mängel lautet wie folgt:

CVE-2024-24809 (CVSS-Score: 8.5) – Path Traversal: ‚dir/../../filename‘ und uneingeschränkter Upload von Dateien mit gefährlichem Typ
CVE-2024-31214 (CVSS-Score: 9.7) – Uneingeschränkte Datei-Upload-Schwachstelle beim Upload von Gerätebildern könnte zu Remote-Code-Ausführung führen

„Das Ergebnis von CVE-2024-31214 und CVE-2024-24809 ist, dass ein Angreifer Dateien mit beliebigem Inhalt an beliebiger Stelle im Dateisystem ablegen kann“, sagte Sunkavally. „Ein Angreifer hat jedoch nur teilweise Kontrolle über den Dateinamen.“

Die Probleme haben mit der Art und Weise zu tun, wie das Programm den Upload von Gerätebilddateien verarbeitet, wodurch ein Angreifer bestimmte Dateien auf dem Dateisystem überschreiben und die Codeausführung auslösen kann. Dazu gehören Dateien, die mit dem folgenden Benennungsformat übereinstimmen:

device.ext, wobei der Angreifer ext steuern kann, aber es MUSS eine Erweiterung geben
blah“, wobei der Angreifer blah steuern kann, aber der Dateiname muss mit einem doppelten Anführungszeichen enden
blah1″;blah2=blah3, wobei der Angreifer blah1, blah2 und blah3 steuern kann, aber die doppelte Anführungszeichen-Semikolon-Sequenz und das Gleichheitszeichen MÜSSEN vorhanden sein

In einem hypothetischen Proof-of-Concept (PoC), der von Horizon3.ai entwickelt wurde, kann ein Angreifer die Path Traversal im Content-Type-Header ausnutzen, um eine crontab-Datei hochzuladen und eine Reverse Shell auf dem Host des Angreifers zu erhalten.

Diese Angriffsmethode funktioniert jedoch nicht auf Debian/Ubuntu-basierten Linux-Systemen aufgrund von Dateibenennungsbeschränkungen, die crontab-Dateien daran hindern, Punkte oder doppelte Anführungszeichen zu haben.

Ein alternativer Mechanismus beinhaltet die Nutzung der Tatsache, dass Traccar als Root-Benutzer installiert ist, um ein Kernel-Modul zu installieren oder eine udev-Regel zu konfigurieren, um einen beliebigen Befehl bei jedem Hardware-Ereignis auszuführen.

Auf anfälligen Windows-Instanzen könnte Remote-Code-Ausführung auch durch Platzieren einer Verknüpfungsdatei (LNK) mit dem Namen „device.lnk“ im Ordner C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp erreicht werden, die anschließend ausgeführt wird, wenn sich ein beliebiger Benutzer am Traccar-Host anmeldet.

Traccar-Versionen 5.1 bis 5.12 sind anfällig für CVE-2024-31214 und CVE-2024-2809. Die Probleme wurden mit der Veröffentlichung von Traccar 6 im April 2024 behoben, das die Selbstregistrierung standardmäßig deaktiviert und so die Angriffsfläche reduziert.

„Wenn die Registrierungseinstellung auf true, readOnly auf false und deviceReadonly auf false steht, kann ein nicht authentifizierter Angreifer diese Schwachstellen ausnutzen“, sagte Sunkavally. „Dies sind die Standardeinstellungen für Traccar 5.“