漏洞概述 该漏洞涉及Kerberos错误处理中的空指针解引用问题。攻击者可以构造一个数据包,使Kerberos进入“error”模式,并强制解析非错误变量,导致空指针解引用。此问题通过仅在错误路径中发送占位符字符串来修复,而不是尝试解析不存在的数据。 影响范围 受影响组件:Kerberos错误处理机制 潜在影响:可能导致系统崩溃或安全漏洞 修复方案 1. 代码修改: - 在 文件中,修改了错误处理逻辑,确保在错误路径中发送占位符字符串。 - 在 文件中,增加了错误处理逻辑,避免解析不存在的变量。 2. 测试用例: - 添加了新的测试用例 ,用于验证修复效果。 - 更新了 文件,记录了新的测试用例。 3. 脚本更新: - 更新了 脚本,确保测试用例的正确执行。 POC代码 ```python src/analyzer/protocol/krb/krb-analyzer.pac if ( error_code == KDC_ERR_PREAUTH_REQUIRED ) rv->Assign(10, proc_padata(arg->arg()->e_data()->padata(), nullptr, true)); rv->Assign(10, proc_padata(arg->arg()->e_data()->padata