Linux modprobe可以执行任意命令发布时间:2000-11-14 更新时间:2000-11-14 严重程度:高 威胁程度:本地管理员权限 错误类型:设计错误 利用方式:服务器模式 受影响系统 GNU Linux modutils 2.3.9详细描述 Modutils是LINUX系统中关于内核模块的工具,其中之一的工具modprobe,自动装载 一套提供名字的响应模块,modprobe 2.3.9存在一个漏洞可以导致本地ROOT权利的 破坏。问题存在于modprobe使用popen()来执行"echo"程序,并且参数由用户来提供,由于popen()依靠/bin/sh来解析命令字符串并执行"echo",如包含一些特殊的SHELL字符就可以导致执行其他命令。 由于modprobe默认不是使用UID为ROOT的身份来安装,所以这个漏洞可以使用KMOD 来在目标系统中获得ROOT权利访问,kmod是一个内核设施自动执行'modprobe'的 程序,当通过request_module()来请求的时候就会调用'modprobe'。 REDHAT7.0中包含的PING程序就调用了request_module,当一个设备在命令行定义的时候不存在,request_module就使用用户提供的参数来传递到内核,内核然后获取这个参数然后再执行modprobe,包含在设备名中参数的命令就可以被ROOT执行。 测试代码 可以下载下面的测试代码: http://www.securityfocus.com/data/vulnerabilities/exploits/rh7-modprobe.sh 解决方案 Keith Owens <kaos@ocs.com.au> 发布了一个补丁给modutils 2.3.9. S.u.S.E. has released patches for this vulnerability. GNU Linux modutils 2.3.9: Keith Owens <kaos@ocs.com.au> patch modutils.patch /data/vulnerabilities/patches/modutils.patch 相关信息 |