漏洞信息详情
Linux kernel do_brk()参数边界检查不充分漏洞
- CNNVD编号:CNNVD-200312-060
- 危害等级: 高危
- CVE编号:
CVE-2003-0961
- 漏洞类型:
边界条件错误
- 发布时间:
2003-11-29
- 威胁类型:
本地
- 更新时间:
2005-10-20
- 厂 商:
linux - 漏洞来源:
Paul Starzetz※ pau… -
漏洞简介
Linux是一款开放源代码操作系统。
Linux内核包含的do_brk()函数对参数缺少充分边界检查,本地攻击者可以利用这个漏洞获得ROOT权限。
最近运行在X86机器的Linux内核运行在X86机器的物理内存管理使用简单平坦内存模型,每个用户进程内存地址范围为从0到TASK_SIZE字节。超过此内存的限制不能被用户访问,并包含此数据结构的内核代码。用户进程被分为几个逻辑段,成为虚拟内存区域,内核跟踪和管理用户进程的虚拟内存区域提供切当的内存管理和内存保护处理。
do_brk()是一个内部内核函数,用于间接调用管理进程的内存堆的增加和缩减(brk),它是一个mmap(2)系统调用的简化版本,只处理匿名映射(如未初始化数据),函数对其参数缺少正确的边界检查,可以利用建立任意大的虚拟内存区域,超过用户可访问的内存限制,因此此限制以上的内核内存会变成用户进程的一部分。
一般用户进程的内存分布类似如下:
bash$ cat /proc/self/maps
08048000-0804c000 r-xp 00000000 03:02 207935 /bin/cat
0804c000-0804d000 rw-p 00003000 03:02 207935 /bin/cat
0804d000-0804e000 rwxp 00000000 00:00 0
40000000-40015000 r-xp 00000000 03:02 207495 /lib/ld-2.3.2.so
40015000-40016000 rw-p 00014000 03:02 207495 /lib/ld-2.3.2.so
40016000-40017000 rw-p 00000000 00:00 0
40020000-40021000 rw-p 00000000 00:00 0
42000000-4212f000 r-xp 00000000 03:02 319985 /lib/tls/libc-2.3.2.so
4212f000-42132000 rw-p 0012f000 03:02 319985 /lib/tls/libc-2.3.2.so
42132000-42134000 rw-p 00000000 00:00 0
bfffe000-c0000000 rwxp fffff000 00:00 0
do_brk()函数在ELF和a.out装载器及brk(2)函数调用,这是三个不同渠道可用于利用这个do_brk()漏洞,成功利用此漏洞,进程内存可包含一个大的内存映射,如:
080a5000-c891d000 rwxp 00000000 00:00 0
本地攻击者可以利用这个漏洞完全控制系统,包括获得UID 0权限,修改内核代码和数据结构等。
漏洞公告
临时解决方法:
如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:
* 使用ulimit -d命令限制用户进程数据段大小可暂时修正此问题。
厂商补丁:
Linux
—–
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.23.bz2” target=”_blank”>
http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.23.bz2
参考网址
来源:US-CERT Vulnerability Note: VU#301156
名称: VU#301156
链接:http://www.kb.cert.org/vuls/id/301156
来源: REDHAT
名称: RHSA-2003:389
链接:http://www.redhat.com/support/errata/RHSA-2003-389.html
来源: DEBIAN
名称: DSA-403
链接:http://www.debian.org/security/2003/dsa-403
来源: REDHAT
名称: RHSA-2003:368
链接:http://www.redhat.com/support/errata/RHSA-2003-368.html
来源: SUSE
名称: SuSE-SA:2003:049
链接:http://www.novell.com/linux/security/advisories/2003_049_kernel.html
来源: DEBIAN
名称: DSA-475
链接:http://www.debian.org/security/2004/dsa-475
来源: DEBIAN
名称: DSA-470
链接:http://www.debian.org/security/2004/dsa-470
来源: DEBIAN
名称: DSA-450
链接:http://www.debian.org/security/2004/dsa-450
来源: DEBIAN
名称: DSA-442
链接:http://www.debian.org/security/2004/dsa-442
来源: DEBIAN
名称: DSA-440
链接:http://www.debian.org/security/2004/dsa-440
来源: DEBIAN
名称: DSA-439
链接:http://www.debian.org/security/2004/dsa-439
来源: DEBIAN
名称: DSA-433
链接:http://www.debian.org/security/2004/dsa-433
来源: DEBIAN
名称: DSA-423
链接:http://www.debian.org/security/2004/dsa-423
来源: DEBIAN
名称: DSA-417
链接:http://www.debian.org/security/2004/dsa-417
来源: SECUNIA
名称: 10338
链接:http://secunia.com/advisories/10338
来源: SECUNIA
名称: 10333
链接:http://secunia.com/advisories/10333
来源: SECUNIA
名称: 10330
链接:http://secunia.com/advisories/10330
来源: SECUNIA
名称: 10329
链接:http://secunia.com/advisories/10329
来源: SECUNIA
名称: 10328
链接:http://secunia.com/advisories/10328
来源: BUGTRAQ
名称: 20031204 [iSEC] Linux kernel do_brk() vulnerability details
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=107064798706473&w=2
来源: isec.pl
链接:http://isec.pl/papers/linux_kernel_do_brk.pdf
来源: MANDRAKE
名称: MDKSA-2003:110
链接:http://www.mandriva.com/security/advisories?name=MDKSA-2003:110
来源: BUGTRAQ
名称: 20040112 SmoothWall Project Security Advisory SWP-2004:001
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=107394143105081&w=2
来源: BUGTRAQ
名称: 20031204 Hot fix for do_brk bug
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=107064830206816&w=2
来源: CONECTIVA
名称: CLA-2003:796
链接:http://distro.conectiva.com.br/atualizacoes/?id=a&anuncio=000796