Kerberos是美国麻省理工学院(MIT)开发的一套网络认证协议,它采用客户端/服务器结构,并且客户端和服务器端均可对对方进行身份认证(即双重验证),可防止窃听、防止replay攻击等。MIT Kerberos 5(又名krb5)是美国麻省理工学院(MIT)开发的一套网络认证协议,它采用客户端/服务器结构,并且客户端和服务器端均可对对方进行身份认证(即双重验证),可防止窃听、防止replay攻击等。 Kerberos在处理RPC接口上的数据类型转换时存在漏洞,远程攻击者可能利用此漏洞控制服务器或导致拒绝服务。 Kerberos src/lib/rpc/svc_auth_unix.c文件中的gssrpc__svcauth_unix()函数将从IXDR_GET_U_LONG获得的无符整数存储到了有符整型变量str_len,然后检查str_len是否小于MAX_MACHINE_NAME,当将很大的无符整型转换为有符整型时str_len总为负值。一旦通过了长度检查,gssrpc__svcauth_unix()就会用str_len的长度调用memmove(),目标为栈中缓冲区。 这个漏洞很难被利用,因为memmove()实现接收到了很大数值的话就会在返回之前出现内存访问错误,导致无法利用被覆盖栈帧中被破坏的返回地址。但有些memmove()实现也可能调用其他过程,因此可以利用被破坏的返回地址。 成功攻击可能导致完全入侵Kerberos密钥数据库,破坏KDC主机的安全性(kadmind通常以root权限运行),不成功的攻击也会导致kadmind崩溃。
Kerberos是美国麻省理工学院(MIT)开发的一套网络认证协议,它采用客户端/服务器结构,并且客户端和服务器端均可对对方进行身份认证(即双重验证),可防止窃听、防止replay攻击等。MIT Kerberos 5(又名krb5)是美国麻省理工学院(MIT)开发的一套网络认证协议,它采用客户端/服务器结构,并且客户端和服务器端均可对对方进行身份认证(即双重验证),可防止窃听、防止replay攻击等。 Kerberos在处理RPC接口上的数据类型转换时存在漏洞,远程攻击者可能利用此漏洞控制服务器或导致拒绝服务。 Kerberos src/lib/rpc/svc_auth_unix.c文件中的gssrpc__svcauth_unix()函数将从IXDR_GET_U_LONG获得的无符整数存储到了有符整型变量str_len,然后检查str_len是否小于MAX_MACHINE_NAME,当将很大的无符整型转换为有符整型时str_len总为负值。一旦通过了长度检查,gssrpc__svcauth_unix()就会用str_len的长度调用memmove(),目标为栈中缓冲区。 这个漏洞很难被利用,因为memmove()实现接收到了很大数值的话就会在返回之前出现内存访问错误,导致无法利用被覆盖栈帧中被破坏的返回地址。但有些memmove()实现也可能调用其他过程,因此可以利用被破坏的返回地址。 成功攻击可能导致完全入侵Kerberos密钥数据库,破坏KDC主机的安全性(kadmind通常以root权限运行),不成功的攻击也会导致kadmind崩溃。