xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Linux modprobe可以执行任意命令


发布时间:2000-11-14
更新时间:2000-11-14
严重程度:
威胁程度:本地管理员权限
错误类型:设计错误
利用方式:服务器模式

受影响系统
GNU Linux modutils 2.3.9
   + S.u.S.E. Linux 7.0
   + S.u.S.E. Linux 6.4
   + RedHat Linux 7.0
GNU Linux modutils 2.3.11 不受此漏洞影响
详细描述
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

相关信息