Kerberos是一款广泛使用的使用强壮的加密来验证客户端和服务器端的网络协议。MIT Kerberos 5是一种常用的开源Kerberos实现。
Kerberos的管理守护程序kadmind在实现GSS-API时mechglue抽象接口存在内存管理错误,远程攻击者可能利用此漏洞导致拒绝服务或执行任意指令。
在kadmind中,log_badverf()函数未经检查返回值且没有初始化传送给gss_display_name()的gss_buffer_desc结构便调用了gss_display_name()。如果gss_display_name()遇到了某些错误情况的话,就不会初始化对其传送的gss_buffer_t输出参数,然后log_badverf()函数会记录返回字符串并调用这些gss_buffer_desc结构上的gss_release_buffer()。在使用RPCSEC_GSS时,kadmind使用了空服务器名称,因此在这种情况下至少有一个对gss_display_name()的调用会失败。
如果未初始化的指针值指向无效的地址空间的话,记录字符串的行为通常会导致内存访问错误,程序会崩溃。但如果攻击者能够控制未初始化的指针使其指向有效的地址空间的话,就可能导致执行任意代码。
MIT Kerberos 5 1.5 - 1.5.1
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href="http://web.mit.edu/kerberos/advisories/2006-003-patch.txt" target="_blank">http://web.mit.edu/kerberos/advisories/2006-003-patch.txt</a>
暂无评论