首页 -> 安全研究

安全研究

安全漏洞
Linux /proc/<pid>/mem mmap()内核崩溃漏洞

发布日期:2002-12-17
更新日期:2002-12-19

受影响系统:
Linux kernel 2.2.x
描述:
BUGTRAQ  ID: 6420
CVE(CAN) ID: CVE-2002-1380

Linux kernel是开放源代码Linux操作系统内核,/proc/pid/mem接口设计用于某一应用程序在某些情况下可以方便的访问另一应用程序内存。这个功能对开发人员或管理员在运行的系统中调试或分析程序非常有用。其中之一访问内存的方法是直接使用mmap()映射页面。

直接使用mmap()映射页面访问内存方法缺少充分的验证,本地攻击者可以利用这个漏洞请求访问不可读进程使系统内核崩溃。

用户可以使用mmap()接口访问被跟踪进程本来没有权限读取的内存,用户可以传递PROT_READ参数给这个调用,请求读访问这个映射,由于不充分的验证检查,恶意用户可以把映射标记为可读,这样用户可以请求他的实例可被内核读取,造成系统崩溃。

<*来源:Michal Zalewski (lcamtuf@echelon.pl
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=104015972215815&w=2
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

*  限制ptrace()或/proc的访问,多种安全增强补丁如Openwall或grsecurity提供限制实现。

*  RAZOR提供如下第三方补丁:

--- linux-2.2/fs/proc/mem.c.old Sun Mar 25 08:30:58 2001
+++ linux-2.2/fs/proc/mem.c Tue Dec 10 14:29:05 2002
@@ -323,7 +323,7 @@
        NULL, /* mem_readdir */
        NULL, /* mem_poll */
        NULL, /* mem_ioctl */
- mem_mmap, /* mmap */
+ NULL, /* mmap */
        NULL, /* no special open code */
        NULL, /* flush */
        NULL, /* no special release code */
        
* 管理员如果想不重新编译和重启系统对系统进行修补,和所有用户不能使用ptrace()接口,可以采用可装载内核模块来关闭普通用户对ptrace()的访问,其中一个补丁可从如下地址获得:

http://www.securiteam.com/tools/5SP082K5GK.html

厂商补丁:

Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kernel.org/

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