Maximales Sicherheitsrisiko in Windows .bat und .cmd Dateien entdeckt

Der Sicherheitsexperte RyotaK von Flatt Security Inc. hat am 9.4.24 eine Schwachstelle in verschiedenen Programmiersprachen in Windows gemeldet, die unter bestimmten Umständen ein maximales Sicherheitsrisiko mit CVSS Score 10 / 10 darstellen kann. Die unter dem Namen BatBadBut geführte Schwachstelle, die es Angreifern ermöglicht, Befehlsinjektionen in Windows-Anwendungen durchzuführen, die indirekt von der Funktion CreateProcess abhängen. Diese Funktion startet implizit cmd.exe beim Ausführen von Batch-Dateien (.bat, .cmd), selbst wenn diese nicht explizit in der Befehlszeile angegeben sind. Dies wird problematisch, da cmd.exe komplexe Parsing-Regeln für Befehlsargumente hat und Laufzeitumgebungen von Programmiersprachen diese Argumente nicht korrekt escapen.

Diese Schwachstelle bringt erheblichen Patchaufwand für Systemadministratoren mit sich, da eine ganze Reihe von Programmiersprachen geupdated werden müssen und zusätzlich, die PATH Umgebungsvariable geprüft werden muss und ggf. darin beinhaltete Ordner mit Anwendungen verschoben werden müssen

Die Ausnutzung dieser Schwachstelle ist möglich, wenn eine Anwendung auf Windows einen Befehl ausführt, der benutzerkontrollierte Eingaben als Teil der Befehlsargumente enthält und die Laufzeitumgebung der verwendeten Programmiersprache die Befehlsargumente nicht korrekt für cmd.exe escapet. Ein einfacher Node.js-Codeausschnitt könnte beispielsweise calc.exe auf einem Server starten, wenn eine Batch-Datei explizit in der Befehlszeile angegeben ist.

Die Wurzel des Problems liegt in der Art und Weise, wie die CreateProcess-Funktion Batch-Dateien ausführt, wobei Windows implizit cmd.exe startet. Die meisten Programmiersprachen umschließen diese Funktion, um eine benutzerfreundlichere Schnittstelle bereitzustellen, aber die Escaping-Mechanismen für Befehlsargumente sind nicht ausreichend für die Parsing-Regeln von cmd.exe.

Um sich zu schützen, sollten Entwickler die Dateierweiterung des auszuführenden Befehls immer angeben. Zudem müssen Eingaben von Benutzern, die als Befehlsargumente verwendet werden, ordnungsgemäß escaped werden, bevor sie verwendet werden.

Schema zur Betroffenheit von Anwendungen (Quelle: Flatt Security Inc.)

Obwohl diese Sicherheitslücke nicht alle Anwendungen betrifft, ist es für betreuende Systemadministratoren entscheidend, umfassende Patches auszuführen und falls dies nicht möglich ist die folgende Mitigations-Strategie auszuführen:

Um die unerwartete Ausführung von Batch-Dateien zu verhindern, sollten Sie in Erwägung ziehen, die Batch-Dateien in ein Verzeichnis zu verschieben, das nicht in der PATH-Umgebungsvariablen enthalten ist. Wenn Batch-Dateien sich in einem Verzeichnis befinden, das nicht im PATH angegeben ist, werden sie nicht automatisch ausgeführt, es sei denn, der vollständige Pfad zur Batch-Datei wird explizit angegeben.

Diese Maßnahme trägt dazu bei, die ungewollte Ausführung von Batch-Dateien zu verhindern, da ein Angreifer nicht mehr einfach einen Befehl mit dem Namen der Batch-Datei ausführen kann, in der Hoffnung, dass das Betriebssystem die Datei automatisch findet und ausführt. Stattdessen müsste der Angreifer den genauen Speicherort der Datei kennen und den vollständigen Pfad angeben, um die Datei auszuführen.

Hier ist eine Tabelle, die die betroffenen Programmiersprachen und ihren aktuellen Status bezüglich der BatBadBut-Sicherheitslücke auflistet:

ProgrammierspracheStatus
ErlangDokumentationsaktualisierung
GoDokumentationsaktualisierung
HaskellPatch verfügbar
Javanicht behebbar
Elektron (CVE-2024-27303)Patch verfügbar
Node.js (CVE-2024-27980)Patch verfügbar
PHP (CVE-2024-1874)Patch wird verfügbar sein
Python (CVE-2024-22423)Dokumentationsaktualisierung, diverse Package Aktualisierungen
Perl (CVE-2023-47039)Advisory verfügbar
RubyDokumentationsaktualisierung
Rust (CVE-2024-24576)Patch verfügbar auf Version >= 1.77.2

Patchtabelle betroffener Programmiersprachen

Related Posts

Sicherheitslücke im Fortra's Robot Schedule Enterprise Agent für Windows

Anfang April 2024 wurde eine schwere Sicherheitslücke wurde im Robot Schedule Enterprise Agent für Windows von Fortra, einer Software zur Automatisierung und Planung von IT-Aufgaben (Robot Process Automation), veröffentlicht. Diese Schwachstelle, klassifiziert unter der Kennung CVE-2024-0259, ermöglicht es Benutzern mit niedrigen Privilegien, erhöhte Rechte zu erlangen, indem sie die ausführbare Datei des Dienstes überschreiben.

Read More

Ransomwareangriff legt GBI-Genios Wirtschaftsdatenbank lahm

Am 8. April 2024 veröffentlichte die GBI-Genios Deutsche Wirtschaftsdatenbank GmbH, ein führender Anbieter von Wirtschafts- und Wissenschaftsinformationen, auf Linkedin, dass Sie Ziel eines massiven Ransomwareangriffs wurde. Der Ransomwareangriff hat die IT-Infrastruktur von GBI-Genios so stark beeinträchtigt, sodass die Systeme derzeit nicht erreichbar sind. Das Unternehmen hat bestätigt, dass der Wiederherstellungsprozess mehrere Tage in Anspruch nehmen wird. Ebenso sind die Kommunikationswege des Unternehmens betroffen, was den Informationsfluss an Kunden und Partner erschwert. Laut uns zugespielten Presse- und Kundeninformationen wurde die On-Premise VMware Virtualisierungsinfrastruktur durch VMware Bordmittel verschlüsselt. Es gibt aktuell keine Anzeichen, dass Clients oder andere Infrastruktursysteme betroffen sind und laut Aussage von GBI-Genios auch keine Anzeichen für einen Datenabfluss. Da die Systeme noch in einem abgeschalteten Zustand sind, können noch keine Aussagen zu betroffenen kundenspezifischen Useraccounts getroffen werden. Betroffen sind *.genios.de, *.wiso-net.de, *.ebib.genios.de.

Read More

Schwachstelle in Broadcom Brocade Fabric OS entdeckt

Eine kritische Sicherheitslücke im Brocade Fabric OS, die es Angreifern ermöglicht, aus der Ferne Code auszuführen und root-Zugriff auf den Switch zu erlangen, wurde identifiziert. Die Schwachstelle, bekannt unter der Kennung CVE-2023-3454, betrifft Versionen nach v9.0 und vor v9.2.0 des Betriebssystems.

Read More