CVE-2025-68972CVE-2025-68972是GnuPG软件中的一个签名验证绕过漏洞。该漏洞存在于GnuPG 2.4.8及之前版本中,当签名的消息在明文行末尾包含\f(换页符)时,攻击者可以构造修改后的消息,在签名材料之后放置额外文本,使得修改后消息的签名验证成功(尽管在验证过程中会打印“无效装甲”消息)。这是因为GnuPG使用\f作为标记来表示长明文行的截断。攻击者利用这一特性,可以在不使签名失效的情况下,向已签名的消息附加任意内容,从而绕过签名验证机制。这一漏洞影响GnuPG的OpenPGP签名验证功能,可能被用于伪造看似有效的签名消息,对依赖GnuPG进行消息认证的系统造成安全风险。攻击属于本地攻击向量,需要较低的攻击复杂度,且不需要认证或用户交互。
GnuPG在处理OpenPGP签名时使用ASCII armor格式,该格式允许使用\f(换页符)作为长明文行的截断标记。当GnuPG解析签名消息时,它会将\f解释为行截断的信号,继续处理后续内容。漏洞的核心问题在于验证逻辑:当消息中某行以\f结尾时,GnuPG会认为该行被截断,并允许在签名材料之后添加额外文本。攻击者可以利用此特性:1)获取原始签名的消息;2)在消息中的明文行末尾添加\f字符;3)在签名材料后附加恶意内容;4)当受害者验证签名时,签名验证会成功,但附加的恶意内容会被处理。攻击成功的前提是原始消息结构中存在以\f结尾的明文行。虽然验证过程会输出“invalid armor”警告,但签名验证本身仍会返回成功结果,这意味着依赖签名验证结果的应用程序可能会被欺骗。