安全研究

安全漏洞
NetBSD passwd/libutil 格式串漏洞

发布日期:2000-10-30
更新日期:2000-10-30

受影响系统:

NetBSD 1.4.2
NetBSD 1.4.1
NetBSD 1.4
不受影响系统:

2000/10/03 in -current and netbsd-1-5 branches
2000/10/04 in netbsd-1-4 branch.
NetBSD 1.4.3
NetBSD 1.5
描述:

NetBSD系统所带的libutil库中的pw_error()函数存在一个格式串漏洞。这
个函数被多个程序(包括设置了setuid属性的passwd程序)使用,可能导
致本地用户获取root权限。

问题出在pw_error函数向warn(3)函数传递它的第一个参数时,warn(3)会将
这个参数作为格式串处理。在某些特定条件下,passwd(1)会将用户输入的
数据作为第一个参数传给pw_error(),堆栈中的数据可能被覆盖和篡改。

<*来源:NetBSD Security Advisory 2000-015 *>


建议:

临时解决方案:

NSFOCUS建议您在没有打补丁之前,暂时去掉使用pw_error()函数的setuid
程序的setuid属性。

解决方案:

在2000/10/03日以后的NetBSD-current版本中这个问题已经得到解决。这个日
期以前的NetBSD-current用户应该尽快更新到最新版本。
正在运行NetBSD 1.4以前版本的系统应当尽快升级到NetBSD 1.4.2然后再安装下
列补丁程序。
正在允许NetBSD1.4.2的系统因当为lib/libutil/passwd.c安装下列补丁,并重
构和安装"libutil"库。

- --- lib/libutil/passwd.c    1999/12/04 20:00:55     1.15.2.1
+++ lib/libutil/passwd.c    2000/10/04 14:11:02     1.15.2.2
@@ -319,7 +319,7 @@
        int err, eval;
{
        if (err)
- -               warn(name);
+               warn("%s", name);

        warnx("%s: unchanged", _PATH_MASTERPASSWD);
        pw_abort();



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