安全研究

安全漏洞
Linux Kernel sctp_setsockopt()整数溢出漏洞

发布日期:2004-05-11
更新日期:2004-05-13

受影响系统:
Linux kernel 2.4.9
Linux kernel 2.4.8
Linux kernel 2.4.7
Linux kernel 2.4.6
Linux kernel 2.4.5
Linux kernel 2.4.4
Linux kernel 2.4.3
Linux kernel 2.4.25
Linux kernel 2.4.24
Linux kernel 2.4.23
Linux kernel 2.4.22
Linux kernel 2.4.21
Linux kernel 2.4.20
Linux kernel 2.4.2
Linux kernel 2.4.19
Linux kernel 2.4.17
Linux kernel 2.4.16
Linux kernel 2.4.15
Linux kernel 2.4.14
Linux kernel 2.4.13
Linux kernel 2.4.12
Linux kernel 2.4.11
Linux kernel 2.4.10
Linux kernel 2.4.1
Linux kernel 2.4
Linux kernel 2.4.18
    - Conectiva Linux 8.0
    - Debian Linux 3.0
    - Mandrake Linux 9.0
    - Mandrake Linux 8.2
    - Mandrake Linux 8.1
    - RedHat Linux 8.0
    - RedHat Linux 7.3
不受影响系统:
Linux kernel 2.6.5
Linux kernel 2.6.4
Linux kernel 2.6.3
Linux kernel 2.6.2
Linux kernel 2.6.1
Linux kernel 2.6
Linux kernel 2.4.26
描述:
Linux是一款开放源代码操作系统。

Linux内核包含的SCTP实现存在问题,本地攻击者可以利用这个漏洞提升权限。

漏洞存在于Linux kernel源代码树中的'net/sctp'中,由于未能充分过滤函数参数,sctp_setsockopt()在解析和处理SCTP 'SCTP_SOCKOPT_DEBUG_NAME'套接口选项时存在整数溢出,可导致错误的分配内存。精心构建参数数据,可导致覆盖过小的内存空间而造成权限提升。

<*来源:Shaun Colley (shaunige@yahoo.co.uk
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108431104000716&w=2
*>

建议:
临时解决方法:

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

* 可采用如下"Shaun Colley" <shaunige@yahoo.co.uk>提供的第三方补丁:

--- sctp_vuln.patch ---
--- socket.orig.c       2004-05-11 18:31:45.000000000
+0100
+++ socket.c    2004-05-11 18:32:40.000000000 +0100
@@ -1516,18 +1516,7 @@

        switch (optname) {
        case SCTP_SOCKOPT_DEBUG_NAME:
-               /* BUG! we don't ever seem to free
this memory. --jgrimm */
-               if (NULL == (tmp = kmalloc(optlen + 1,
GFP_KERNEL))) {
-                       retval = -ENOMEM;
-                       goto out_unlock;
-               }
-
-               if (copy_from_user(tmp, optval,
optlen)) {
-                       retval = -EFAULT;
-                       goto out_unlock;
-               }
-               tmp[optlen] = '\000';
-               sctp_sk(sk)->ep->debug_name = tmp;
+               /* do nothing */
                break;

        case SCTP_SOCKOPT_BINDX_ADD:
--- EOF ---

厂商补丁:

Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.kernel.org/

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