CVE:CVE-2007-2798
CNNVD:CNNVD-200706-482
Kerberos是美国麻省理工学院（MIT）开发的一套网络认证协议，它采用客户端/服务器结构，并且客户端和服务器端均可对对方进行身份认证（即双重验证），可防止窃听、防止replay攻击等。MIT Kerberos 5（又名krb5）是美国麻省理工学院（MIT）开发的一套网络认证协议，它采用客户端/服务器结构，并且客户端和服务器端均可对对方进行身份认证（即双重验证），可防止窃听、防止replay攻击等。
Kerberos中负责处理重新命名主体的代码中存在缓冲区溢出漏洞，远程攻击者可能利用此漏洞控制服务器。
rename_principal_2_svc函数没有对用户提供数据执行边界检查便拷贝到了固定大小的缓冲区，漏洞代码如下： 
  542 generic_ret *
  543 rename_principal_2_svc(rprinc_arg *arg, struct svc_req *rqstp)
  544 {
  545     static generic_ret          ret;
  546     char                        *prime_arg1,
  547                                 *prime_arg2;
  548     char                        prime_arg[BUFSIZ];
  ...
  570     if (krb5_unparse_name(handle->context, arg->src,  &prime_arg1) ||
  571         krb5_unparse_name(handle->context, arg->dest,  &prime_arg2)) {
  572          ret.code = KADM5_BAD_PRINCIPAL;
  573          goto exit_func;
  574     }
  575     sprintf(prime_arg, "%s to %s", prime_arg1, prime_arg2);
在570和571行从kadmind服务程序环境中获得了攻击者提供的数据，在575行以静态文本连接源主体名和目标主体名时会出现栈溢出。 
成功攻击可能导致完全入侵Kerberos密钥数据库，破坏KDC主机的安全性(kadmind通常以root权限运行)，不成功的攻击也会导致kadmind崩溃。
solution:Upgrade mit kerberos_5 to a higher version than 1.6.1,and avoid the version (,1.6.1]; Upgrade canonical ubuntu_linux to a higher version than 6.06,6.10,7.04,and avoid the version 6.06,6.10,7.04; Upgrade debian debian_linux to a higher version than 3.1,4.0,and avoid the version 3.1,4.0