
Exploit de prueba de concepto para la inyección de secuencias de escape de terminal a través de nombres de archivo maliciosos que oculta los hallazgos del escaneo de Flawfinder; corregido en la versión 2.0.20.
En la versión 2.0.19 de Flawfinder, no se realiza una sanitización de nombres de archivo al analizar posibles nombres de archivo maliciosos. Los terminales afectados conocidos son los basados en libvte, y el ejemplo a continuación muestra un mate-terminal.
Este exploit ha sido corregido desde la versión 2.0.20 a partir del 17/5/26 por David Wheeler y yo.
En este repositorio se incluye un script bash de POC de muestra y algo de información sobre cómo funciona el exploit.
En un directorio de muestra, incluya tantos archivos como desee, como se muestra a continuación:

Ambos archivos contienen el mismo código C:
#include <string.h>
void f(char *s) {
char buf[8];
strcpy(buf, s); /* genuina detección de nivel 4 de flawfinder */
}
Cuando se ejecuta flawfinder en este directorio, se produce la siguiente salida esperada:

Ahora, si incluyo el siguiente archivo con el nombre malicioso:

Al volver a ejecutar flawfinder se produce esta salida:

Este nombre de archivo malicioso oculta la salida de cada archivo escaneado por flawfinder y afirma falsamente que no tienen hallazgos.
Además, ejecutar flawfinder con la bandera --csv produciría los mismos resultados, y guardar la salida en un archivo "*.csv" ocultaría los resultados reales al usuario final.