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

Unit42 berichtet Anstieg von Malware-initiierten Schwachstellenscans

Eine Untersuchung von Palo Alto’s Unit42 hebt einen beunruhigenden Trend hervor: Malware-initiierte Schwachstellenscans nehmen zu. Im Gegensatz zu direkten Scans, die lange Zeit die Norm waren, nutzen Angreifer jetzt infizierte Hosts, um umfangreiche Scans durchzuführen und Schwachstellen in Netzwerken und Systemen zu identifizieren.

Read More

Dell NetWorker Update behebt kritische Curl-Schwachstellen

Dell hat am 8.4.24 ein wichtiges Sicherheitsupdate für Dell NetWorker veröffentlicht, das mehrere Schwachstellen in der Curl-Bibliothek adressiert. Diese Schwachstellen könnten von Angreifern ausgenutzt werden, um die betroffenen Systeme zu kompromittieren. Das Update betrifft die Curl-Bibliothek, die in Dell NetWorker verwendet wird. Speziell geht es um die CVEs CVE-2023-38545 und CVE-2023-38546. Diese Schwachstellen sind als kritisch eingestuft, und Dell empfiehlt allen Nutzern, die CVSS-Basisbewertung sowie alle relevanten zeitlichen und umgebungsbezogenen Bewertungen zu berücksichtigen, um das potenzielle Schwereausmaß der Sicherheitslücken zu verstehen.

Read More

Lexmark Drucker durch Schwachstelle angreifbar

Lexmark hat wichtige Sicherheitsupdates für seine Druckergeräte herausgegeben, um zwei kritische Sicherheitslücken zu beheben. Die Updates adressieren Schwachstellen vom Typ Server Side Request Forgery (SSRF) und in der Buffer Overflow im Internet Printing Protocol (IPP), die in verschiedenen Lexmark-Geräten identifiziert wurden. Die erste Schwachstelle, gekennzeichnet als CVE-2023-50733, betrifft eine SSRF-Anfälligkeit in der Webdienstfunktion neuerer Lexmark-Geräte, mit einer CVSS-Basisbewertung von 8,6. Die zweite Schwachstelle, unter CVE-2023-50739 registriert, ist eine Pufferüberlaufschwachstelle im IPP verschiedener Lexmark-Geräte, mit einer CVSS-Basisbewertung von 8,8. Beide Schwachstellen ermöglichen es einem Angreifer, potenziell unautorisierten Code auszuführen oder das Gerät zu kompromittieren.

Read More