
Prova de conceito de exploit para injeção de sequência de escape de terminal por meio de nomes de arquivos maliciosos que oculta os resultados da varredura do Flawfinder; corrigido na versão 2.0.20.
Na versão 2.0.19 do Flawfinder, não há sanitização de nomes de arquivo ao analisar nomes de arquivo potencialmente maliciosos. Os terminais afetados conhecidos são baseados em libvte, e o exemplo abaixo mostra um mate-terminal.
Este exploit foi corrigido na versão 2.0.20 a partir de 5/17/26 por David Wheeler e por mim.
Incluído neste repositório está um script bash POC de exemplo e algumas informações sobre como o exploit funciona.
Em um diretório de exemplo, inclua quantos arquivos desejar, conforme mostrado abaixo:

Ambos os arquivos contêm o mesmo código C:
#include <string.h>
void f(char *s) {
char buf[8];
strcpy(buf, s); /* genuíno hit de nível 4 do flawfinder */
}
Quando o flawfinder é executado neste diretório, a seguinte saída esperada é produzida:

Agora, se eu incluir o seguinte arquivo com o nome malicioso:

Reexecutar o flawfinder produz esta saída:

Este nome de arquivo malicioso oculta a saída de todos os arquivos escaneados pelo flawfinder e afirma falsamente que eles não têm nenhum achado.
Além disso, executar o flawfinder com a flag --csv produziria os mesmos resultados, e salvar a saída em um arquivo "*.csv" ocultaria os verdadeiros resultados do usuário final.