
Prova de conceito de exploit demonstrando injeção de sequência de escape ANSI no Flawfinder 2.0.19 por meio de nomes de arquivos maliciosos, com detalhamento passo a passo e medidas de mitigação.
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.