漏洞概述 DIGEST-MD5 解析器存在一个 NULL 指针解引用漏洞,该漏洞在服务器端和客户端的解析路径中均会导致崩溃。当已知令牌在没有 的情况下出现时, 被设置为 NULL,导致后续调用 、 、 或解引用时触发 SIGSEGV。 影响范围 受影响版本: - gssapi 2.2.2(最新发行版) - libgsas1 1.10.5(Ubuntu 22.04 apt 包) 影响组件: - DIGEST-MD5 解析器(服务器端和客户端) 影响场景: - 服务器端:解析客户端的 DIGEST-MD5 响应 - 客户端:解析服务器的 DIGEST-MD5 挑战 修复方案 修复代码: - 在 的第 74 行,将 修改为 - 这样可以确保 永远不会是 NULL,空字符串会被现有的验证逻辑拒绝。 POC 代码 利用代码 其他信息 崩溃点: - 服务器端: 函数中的多个位置 - 客户端: 和 函数中的多个位置 测试环境: - GNU Mailutils imapd (Ubuntu package mailutils-imapd 1.13.1-1 + libgsas1 1.10.5) 复现步骤: - 发送一个格式错误的 SASL 响应,其中包含 而没有 。 修复验证: - 修改后,空字符串会被现有的验证逻辑拒绝,从而避免 NULL 指针解引用。