7.8 CVE-2022-45639
Exploit RCE Injection SQL
** DISPUTED ** OS Command injection vulnerability in sleuthkit fls tool 4.11.1 allows attackers to execute arbitrary commands via a crafted value to the m parameter. NOTE: third parties have disputed this because there is no analysis showing that the backtick command executes outside the context of the user account that entered the command line. (Waiting for translation)
https://nvd.nist.gov/vuln/detail/CVE-2022-45639
Kategorien
CWE-78 : Unsachgemäße Neutralisierung von speziellen Elementen, die in einem OS-Befehl verwendet werden ("OS Command Injection")
Das Produkt konstruiert alle oder einen Teil eines Betriebssystembefehls unter Verwendung extern beeinflusster Eingaben von einer vorgelagerten Komponente, neutralisiert aber spezielle Elemente nicht oder falsch, die den beabsichtigten Betriebssystembefehl verändern könnten, wenn er an eine nachgelagerte Komponente gesendet wird. Diese Schwachstelle kann mit dynamischen Werkzeugen und Techniken aufgedeckt werden, die mit der Software interagieren, indem große Testsuiten mit vielen verschiedenen Eingaben verwendet werden, wie z. B. Fuzz-Testing (Fuzzing), Robustheitstests und Fehlerinjektion. Der Betrieb der Software kann sich verlangsamen, aber sie sollte nicht instabil werden, abstürzen oder falsche Ergebnisse liefern. Da diese Schwachstelle innerhalb eines Softwarepakets in der Regel nicht häufig auftritt, können manuelle White-Box-Techniken eine ausreichende Codeabdeckung und eine Verringerung der Fehlalarme bewirken, wenn alle potenziell anfälligen Operationen innerhalb eines begrenzten Zeitrahmens bewertet werden können. Verwenden Sie, wenn möglich, Bibliotheksaufrufe anstelle von externen Prozessen, um die gewünschte Funktionalität nachzubilden. Alle Daten, die zur Generierung eines auszuführenden Befehls verwendet werden, sollten so weit wie möglich von externer Kontrolle ferngehalten werden. Bei Webanwendungen kann dies beispielsweise bedeuten, dass die Daten lokal im Sitzungsstatus gespeichert werden müssen, anstatt sie in einem verborgenen Formularfeld an den Client zu senden. Bei allen Sicherheitsprüfungen, die auf der Client-Seite durchgeführt werden, muss sichergestellt werden, dass diese Prüfungen auf der Server-Seite dupliziert werden, um CWE-602 zu vermeiden. Angreifer können die clientseitigen Prüfungen umgehen, indem sie Werte ändern, nachdem die Prüfungen durchgeführt wurden, oder indem sie den Client so ändern, dass die clientseitigen Prüfungen vollständig entfernt werden. Diese geänderten Werte würden dann an den Server übermittelt. Es ist zwar riskant, dynamisch erzeugte Abfragezeichenfolgen, Code oder Befehle zu verwenden, die Kontrolle und Daten miteinander vermischen, aber manchmal ist es unvermeidlich. Setzen Sie Argumente ordnungsgemäß in Anführungszeichen und geben Sie alle Sonderzeichen innerhalb dieser Argumente als Escapezeichen aus. Der konservativste Ansatz besteht darin, alle Zeichen, die eine extrem strenge Erlaubnisliste nicht bestehen (z. B. alles, was nicht alphanumerisch oder Leerzeichen ist), zu entschlüsseln oder zu filtern. Wenn einige Sonderzeichen noch benötigt werden, wie z.B. Leerzeichen, umschließen Sie jedes Argument in Anführungszeichen nach dem Escaping/Filterungsschritt. Achten Sie auf die Einschleusung von Argumenten (CWE-88). Wenn das auszuführende Programm die Angabe von Argumenten in einer Eingabedatei oder über die Standardeingabe zulässt, sollten Sie diesen Modus zur Übergabe von Argumenten anstelle der Befehlszeile verwenden. Wenn die Menge der akzeptablen Objekte, wie Dateinamen oder URLs, begrenzt oder bekannt ist, erstellen Sie eine Zuordnung von einer Menge fester Eingabewerte (z. B. numerische IDs) zu den tatsächlichen Dateinamen oder URLs und lehnen alle anderen Eingaben ab. Führen Sie den Code in einer Umgebung aus, die eine automatische Weitergabe von Verunreinigungen vornimmt und die Ausführung von Befehlen verhindert, die verunreinigte Variablen verwenden, wie z. B. der Schalter "-T" von Perl. Dadurch wird das Programm gezwungen, Validierungsschritte durchzuführen, die den Makel entfernen, obwohl Sie darauf achten müssen, Ihre Eingaben korrekt zu validieren, damit Sie nicht versehentlich gefährliche Eingaben als unverfälscht markieren (siehe CWE-183 und CWE-184). Führen Sie den Code in einer Umgebung aus, die eine automatische Weitergabe der Befleckung vornimmt und die Ausführung von Befehlen verhindert, die befleckte Variablen verwenden, wie z. B. der Schalter "-T" von Perl. Dadurch wird das Programm gezwungen, Validierungsschritte durchzuführen, die den Makel entfernen, obwohl Sie darauf achten müssen, Ihre Eingaben korrekt zu validieren, damit Sie nicht versehentlich gefährliche Eingaben als unverdorben markieren (siehe CWE-183 und CWE-184). Verwenden Sie die Durchsetzung von Laufzeitrichtlinien, um eine Liste zulässiger Befehle zu erstellen, und verhindern Sie dann die Verwendung von Befehlen, die nicht in der Liste enthalten sind. Hierfür stehen Technologien wie AppArmor zur Verfügung. Verwenden Sie eine Anwendungsfirewall, die Angriffe auf diese Schwachstelle erkennen kann. Dies kann in Fällen von Vorteil sein, in denen der Code nicht repariert werden kann (weil er von einem Dritten kontrolliert wird), als Notfallpräventionsmaßnahme, während umfassendere Software-Sicherheitsmaßnahmen angewandt werden, oder um eine tiefgehende Verteidigung zu gewährleisten. Führen Sie Ihren Code mit den niedrigsten Rechten aus, die für die Ausführung der notwendigen Aufgaben erforderlich sind [REF-76]. Wenn möglich, erstellen Sie isolierte Konten mit eingeschränkten Rechten, die nur für eine einzige Aufgabe verwendet werden. Auf diese Weise erhält der Angreifer bei einem erfolgreichen Angriff nicht sofort Zugang zum Rest der Software oder ihrer Umgebung. Beispielsweise müssen Datenbankanwendungen nur selten als Datenbankadministrator ausgeführt werden, insbesondere im täglichen Betrieb. Wenn Sie PHP verwenden, konfigurieren Sie die Anwendung so, dass sie register_globals nicht verwendet. Entwickeln Sie die Anwendung während der Implementierung so, dass sie nicht auf diese Funktion angewiesen ist, aber seien Sie vorsichtig bei der Implementierung einer register_globals-Emulation, die Schwachstellen wie CWE-95, CWE-621 und ähnlichen Problemen unterliegt. Einschleusen von OS-Befehlen in Wi-Fi-Router, wie sie in freier Wildbahn per CISA KEV ausgenutzt werden. Schablonenfunktionalität im Netzwerkkonfigurationsmanagement-Tool ermöglicht die Einspeisung von OS-Befehlen, wie im Rahmen von CISA KEV in freier Wildbahn ausgenutzt wurde. Kette: unsachgemäße Eingabevalidierung (CWE-20) im Parameter username, die zur Einspeisung von OS-Befehlen führt (CWE-78), wie sie in freier Wildbahn durch CISA KEV ausgenutzt wurde. Kanonisches Beispiel für OS-Befehlsinjektion. CGI-Programm neutralisiert das Metazeichen "|" nicht, wenn es ein Telefonbuchprogramm aufruft. Die Mail-Funktion des Sprachinterpreters akzeptiert ein weiteres Argument, das zu einer Zeichenkette verkettet wird, die in einem gefährlichen popen()-Aufruf verwendet wird. Da es keine Neutralisierung dieses Arguments gibt, sind sowohl OS Command Injection (CWE-78) als auch Argument Injection (CWE-88) möglich. Der Webserver erlaubt die Ausführung von Befehlen mit dem Zeichen "|" (Pipe). Der FTP-Client filtert "|" nicht aus den vom Server zurückgegebenen Dateinamen, so dass eine OS Command Injection möglich ist. Shell-Metazeichen in einem Dateinamen in einem ZIP-Archiv Shell-Metazeichen in einem telnet://-Link werden nicht korrekt behandelt, wenn die startende Anwendung den Link verarbeitet. OS-Befehlsinjektion über Umgebungsvariable. OS-Befehlsinjektion durch https:// URLs Kette: unvollständige Denyliste für OS-Befehlsinjektion Das Produkt erlaubt entfernten Benutzern die Ausführung beliebiger Befehle durch das Erstellen einer Datei, deren Pfadname Shell-Metazeichen enthält.
Referenzen
MISC Exploit
https://www.binaryworld.it/guidepoc.asp#CVE-2022-45639 Broken Link |
http://www.binaryworld.it/ Exploit Vendor Advisory |
CPE
cpe | start | ende |
---|---|---|
Configuration 1 | ||
cpe:2.3:a:sleuthkit:the_sleuth_kit:4.11.1:*:*:*:*:*:*:* |
REMEDIERUNG
EXPLOITS
Exploit-db.com
id | beschreibung | datum | |
---|---|---|---|
Keine bekannten Exploits |
Andere (github, ...)
Url |
---|
http://www.binaryworld.it/ |
CAPEC
Common Attack Pattern Enumerations and Classifications
id | beschreibung | schweregrad |
---|---|---|
108 | Command Line Execution through SQL Injection |
Sehr hoch |
15 | Befehlsbegrenzer |
Hoch |
43 | Ausnutzen mehrerer Eingangsinterpretationsschichten |
Hoch |
6 | Argument-Injektion |
Hoch |
88 | OS-Befehlsinjektion |
Hoch |
MITRE
Sherlock® flash
Machen Sie mit wenigen Klicks ein Foto von Ihrem Computernetzwerk !
Mit der Sherlock® flash Audit-Lösung können Sie ein Audit durchführen, um die Sicherheit Ihres Computerbestands zu erhöhen. Scannen Sie Ihre physischen und virtuellen Geräte auf Schwachstellen. Planung von Patches nach Priorität und verfügbarer Zeit. Detaillierte und intuitive Berichte.
