CVE-2026-21439badkeys是一款用于检查加密公钥已知漏洞的开源工具和库。在0.0.15及更早版本中,存在一个输出注入(Output Injection)漏洞。攻击者可以在公钥数据中注入ASCII控制字符(如垂直制表符\x0b、换页符\x0c、ANSI转义序列等),这些特殊字符会被badkeys工具直接输出到终端,可能导致输出内容被操纵,生成误导性的扫描结果。该漏洞影响DKIM密钥扫描(--dkim和--dkim-dns模式)、SSH密钥扫描(--ssh-lines模式)以及文件名处理等多个功能模块。攻击者利用此漏洞可以隐藏真实的漏洞检测结果,对使用badkeys进行自动化安全扫描的系统造成干扰,可能导致管理员做出错误的安全决策。此漏洞已在0.0.16版本中得到修复。
该漏洞属于输出注入(Output Injection)类型,根源在于badkeys工具在处理用户提供的公钥数据时,未对控制字符进行适当的过滤和转义。攻击者可以利用以下方式触发漏洞:1) 在DKIM密钥的域名前缀中注入ANSI转义序列(如\x1b[31m),使输出显示伪造的「安全」状态;2) 在SSH公钥文件名中注入垂直制表符(\x0b)或换页符(\x0c),制造视觉混淆;3) 利用\r(回车符)覆盖已输出的检测结果。攻击者通过在密钥数据或文件名中嵌入控制字符,可以在终端输出中插入任意内容,伪造漏洞检测结果或隐藏真实的漏洞信息。这种攻击特别针对依赖badkeys输出进行自动化决策的安全扫描系统,可能导致漏洞被遗漏或产生虚假的安全报告。修复方案在0.0.16版本中增加了对控制字符的过滤处理。