0
  Linux Kernel是开放源码操作系统Linux所使用的内核。Linux内核中net/dccp/proto.c文件的do_dccp_getsockopt()函数存在信息泄露漏洞,本地攻击者可能利用此漏洞获取敏感信息。

  受影响系统:

  Linux kernel >= 2.6.20

  描述:

  Linux Kernel是开放源码操作系统Linux所使用的内核。

  Linux内核中net/dccp/proto.c文件的do_dccp_getsockopt()函数存在信息泄露漏洞,本地攻击者可能利用此漏洞获取敏感信息。

  相关的代码如下:

  -----------------------

  static int do_dccp_getsockopt(struct sock *sk, int level, int optname,

   char __user *optval, int __user *optlen)

  ...

  if (get_user(len, optlen))

   return -EFAULT;

  if (len < sizeof(int))

   return -EINVAL;

  ...

  -----------------------

  上面的代码没有对len变量检查负数值。由于类型转换,对于小于0的len值len < sizeof(int)也总为true。

  之后调用了copy_to_user()过程:

  -----------------------

  if (put_user(len, optlen)  copy_to_user(optval, &val, len))

   return -EFAULT;

  -----------------------

  接下来会出现的情况取决于用户所使用的CPU架构,因为每个CPU架构都有自己的copy_to_user()实现方式。在IA-32上代码如下:

  -----------------------

  unsigned long

  copy_to_user(void __user *to, const void *from, unsigned long n)

  {

   BUG_ON((long) n < 0);

  -----------------------

  这可以阻止进一步攻击,但由于BUG_ON()中无效的opcode内核会崩溃。在其他架构上(如x86-64)内核空间的数据会被拷贝到用户所提供的缓冲区,直到内核的尽头,导致泄漏敏感信息。

  <*来源:Robert Swiecki (robert@swiecki.net)

  链接:marc.info/?l=bugtraq&m=117501494401588&w=2

  *>

  建议:

  厂商补丁:

  Linux

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

  www.kernel.org/
本站Alexa统计
-------------------------
Tags: , , , | 引用(0) | From 本站原创
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]