安全研究

安全漏洞
Todd Miller Sudo本地绕过Kerberos认证漏洞

发布日期:2007-06-07
更新日期:2007-06-08

受影响系统:
Todd Miller Sudo 1.6.8 p12
描述:
BUGTRAQ  ID: 24368

Sudo是一款允许用户以其他用户权限安全地执行命令的程序,广泛使用在Linux和Unix操作系统下。

sudo软件包可能内嵌使用Kerberos 5进行用户认证。如果用户能够正确地认证到sudo的话,sudo认证代码中的错误可能导致本地root用户权限入侵。

在对Kerberos服务器认证用户口令时,需要执行两步:

1) 使用用户的口令从KDC(Kerberos服务器)获得凭据,这证明用户输入的口令满足KDC,并对应用程序返回ticket。

2) 使用所返回的凭据请求访问本地服务,并确认KDC对该服务所返回的的凭据是正确的。如果没有执行这步的话,就无法区分请求是来自于对所有请求都返回yes的伪造KDC还是来自于真正的KDC。

sudo执行了第二步,但如果由于未知本地服务密钥而导致该步失败的话,sudo仍允许用户获得root用户权限。例如,在没有keytab文件的主机上:

$ sudo /bin/sh
Password for tls@EXAMPLE.ORG:
sudo: kerb5: host service key not found: Unknown error -1765328203
#

此外如果sudo链接到libkrb5的话,即使没有将系统配置为打开kerberos,攻击者仍可以通过环境变量覆盖kerberos客户端配置文件(krb5.conf),认证到伪造的KDC,然后获得root用户s权限。

<*来源:Thor Lancelot Simon (tls@rek.tjls.com
  
  链接:http://marc.info/?l=bugtraq&m=118123368025837&w=2
        http://marc.info/?l=bugtraq&m=118123210829046&w=2
*>

建议:
厂商补丁:

Todd Miller
-----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.sudo.ws/cgi-bin/cvsweb/sudo/auth/kerb5.c

浏览次数:2611
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障