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();
浏览次数:7626
严重程度:0(网友投票)