
Эксплойт, подтверждающий концепцию, для инъекции escape-последовательностей терминала через вредоносные имена файлов, скрывающий результаты сканирования Flawfinder; исправлено в версии 2.0.20.
В версии 2.0.19 Flawfinder не выполняется санитизация имён файлов при парсинге потенциально вредоносных имён файлов. Известно, что затронуты терминалы на основе libvte, пример ниже показывает mate-terminal.
Эта эксплойт с тех пор был исправлен в версии 2.0.20 по состоянию на 5/17/26 Дэвидом Уилером и мной.
В этом репозитории содержится пример POC bash-скрипта и некоторая информация о том, как работает эксплойт.
В образцовом каталоге включите столько файлов, сколько захотите, как показано ниже:

Оба файла содержат один и тот же код на C:
#include <string.h>
void f(char *s) {
char buf[8];
strcpy(buf, s); /* genuine flawfinder level-4 hit */
}
Когда flawfinder запускается в этом каталоге, создаётся следующий ожидаемый вывод:

Теперь, если я включу следующий файл с вредоносным именем:

Повторный запуск flawfinder даёт следующий вывод:

Это вредоносное имя файла скрывает вывод для всех файлов, сканируемых flawfinder, и ложно утверждает, что в них нет находок.
Кроме того, запуск flawfinder с флагом --csv даст те же результаты, а сохранение вывода в файл «*.csv» скроет истинные результаты от конечного пользователя.