|
涉及程序:
Linux Kernel sctp_setsockopt()
描述:
Linux Kernel sctp_setsockopt()整数溢出漏洞
详细:
Linux是一款开放源代码操作系统。
Linux内核包含的SCTP实现存在问题,本地攻击者可以利用这个漏洞提升权限。
漏洞存在于Linux kernel源代码树中的'net/sctp'中,由于未能充分过滤函数参数,sctp_setsockopt()在解析和处理SCTP 'SCTP_SOCKOPT_DEBUG_NAME'套接口选项时存在整数溢出,可导致错误的分配内存。精心构建参数数据,可导致覆盖过小的内存空间而造成权限提升。
受影响系统:
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
攻击方法:
暂无有效攻击代码
解决方案:
临时解决方法:
如果您不能立刻安装补丁或者升级,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/
附加信息:
无
发布时间:2004年5月18日 |
|