Linux Kernel do_io_submit()函数整数溢出漏洞
发布日期:2010-09-21 更新日期:2010-09-27 受影响系统: Linux kernel 2.6.x 不受影响系统: Linux kernel 2.6.36-rc4 描述: -------------------------------------------------------------------------------- BUGTRAQ ID: 43353 CVE(CAN) ID: CVE-2010-3067 Linux Kernel是开放源码操作系统Linux所使用的内核. Linux Kernel的fs/aio.c文件中的do_io_submit函数存在整数溢出漏洞,本地用户可以通过io_submit调用导致拒绝服务. io_submit系统调用直接调用了do_io_submit()函数: SYSCALL_DEFINE3(io_submit, aio_context_t, ctx_id, long, nr, struct iocb __user * __user *, iocbpp) { return do_io_submit(ctx_id, nr, iocbpp, 0); } do_io_submit仅检查了nr是否小于0,但没有检查access_ok乘积是否会溢出: long do_io_submit(aio_context_t ctx_id, long nr, struct iocb __user *__user *iocbpp, bool compat) { ... if (unlikely(!access_ok(VERIFY_READ, iocbpp, (nr*sizeof(*iocbpp))))) return -EFAULT; ... 之后对__get_user_nocheck()使用了这个循环,这并不安全: ... for (i=0; i<nr; i ) { struct iocb __user *user_iocb; struct iocb tmp; if (unlikely(__get_user(user_iocb, iocbpp i))) { ret = -EFAULT; break; } ... 建议: -------------------------------------------------------------------------------- 厂商补丁: Linux ----- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75e1c70fc31490ef8a373ea2a4bea2524099b478">http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75e1c70fc31490ef8a373ea2a4bea2524099b478
|
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |