
Proof-of-Concept-Exploit, der die Injektion von ANSI-Escape-Sequenzen in Flawfinder 2.0.19 über bösartige Dateinamen demonstriert, mit Erläuterung und Details zur Abschwächung.
In Version 2.0.19 von Flawfinder findet keine Dateinamen-Sanitisierung statt, wenn möglicherweise bösartige Dateinamen geparst werden. Bekannte betroffene Terminals basieren auf libvte, und das folgende Beispiel zeigt ein mate-Terminal.
Dieser Exploit wurde seitdem in Version 2.0.20 ab dem 17.5.26 von David Wheeler und mir behoben.
In diesem Repository ist ein Beispiel-POC-Bash-Skript sowie einige Informationen zur Funktionsweise des Exploits enthalten.
Fügen Sie in einem Beispielverzeichnis beliebig viele Dateien hinzu, wie unten gezeigt:

Beide Dateien enthalten denselben C-Code:
#include <string.h>
void f(char *s) {
char buf[8];
strcpy(buf, s); /* genuine flawfinder level-4 hit */
}
Wenn flawfinder in diesem Verzeichnis ausgeführt wird, wird die folgende erwartete Ausgabe erzeugt:

Wenn ich nun die folgende Datei mit dem bösartigen Dateinamen einfüge:

Ein erneutes Ausführen von flawfinder erzeugt diese Ausgabe:

Dieser bösartige Dateiname verbirgt die Ausgabe für jede von flawfinder gescannte Datei und gibt fälschlicherweise an, dass keine Funde vorhanden seien.
Weiterhin würde die Ausführung von flawfinder mit dem --csv-Flag die gleichen Ergebnisse liefern, und das Speichern der Ausgabe in einer "*.csv"-Datei würde die wahren Ergebnisse vor dem Endbenutzer verbergen.