在 Flawfinder 2.0.19 版本中,解析可能恶意的文件名时未进行文件名清理。已知受影响的终端基于 libvte,以下示例展示了一个 mate-terminal。
此漏洞已于 2026年5月17日 由 David Wheeler 和我在 2.0.20 版本中修复。
本仓库包含一个示例 POC bash 脚本以及关于该漏洞工作原理的一些信息。
在示例目录中,可以包含任意数量的文件,如下所示:

这些文件都包含相同的 C 代码:
#include <string.h>
void f(char *s) {
char buf[8];
strcpy(buf, s); /* genuine flawfinder level-4 hit */
}
当在该目录上运行 flawfinder 时,会产生以下预期的输出:

现在,如果我包含以下具有恶意文件名的文件:

重新运行 flawfinder 会产生以下输出:

这个恶意的文件名会隐藏 flawfinder 扫描的所有文件的输出,并错误地声称它们没有发现任何问题。
此外,使用 --csv 标志运行 flawfinder 会产生相同的结果,将输出保存到 "*.csv" 文件中会向最终用户隐藏真实结果。