CVE-2025-68973CVE-2025-68973是GnuPG软件中的一个高危安全漏洞,存在于g10/armor.c文件的armor_filter函数中。该漏洞源于代码中存在两个索引变量的增量操作,而实际上只需要一个,这种逻辑错误导致在处理精心构造的ASCII armor格式输入时发生缓冲区越界写入。攻击者可通过诱使目标处理恶意构造的加密数据或签名文件来触发此漏洞,成功利用可导致程序崩溃或潜在的代码执行风险。此漏洞影响GnuPG 2.4.9之前的所有版本,ExtendedLTS用户需要升级到2.2.51或更高版本。由于GnuPG是广泛使用的OpenPGP标准实现,漏洞影响多个依赖其进行加密通信和文件签名验证的应用。
漏洞位于GnuPG源代码的g10/armor.c文件第1305-1306行的armor_filter函数中。该函数负责解析和处理OpenPGP的ASCII armor格式数据。问题根源在于处理输入数据的循环中,索引变量被意外递增了两次:一次是预期的正常递增,另一次是不应该存在的额外递增。这导致在处理特殊构造的armor数据时,写入缓冲区的位置超出预期范围。攻击者可以通过创建一个包含特殊构造的armor标记和数据的文件(如.asc文件),当GnuPG处理该文件时触发越界写入。该漏洞的CVSS向量显示攻击复杂度为高(AC:H),需要本地访问(AV:L),但无需认证(PR:N)和用户交互(UI:N),可造成高机密性(C:H)和高完整性(I:H)影响。