首页 -> 安全研究

安全研究

安全漏洞
SLocate路径分配整数溢出导致堆破坏漏洞

发布日期:2003-05-20
更新日期:2003-05-26

受影响系统:
slocate slocate 2.7
slocate slocate 2.5
slocate slocate 2.4
slocate slocate 2.3
slocate slocate 2.2
slocate slocate 2.1
slocate slocate 2.6
    - Conectiva Linux 8.0
    - Conectiva Linux 7.0
    - Conectiva Linux 6.0
    - RedHat Linux 7.3
描述:
BUGTRAQ  ID: 7629
CVE(CAN) ID: CVE-2003-0326

slocate是一款查找文件和目录的工具,slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

slocate当处理环境变量SLOCATE_PATH数据时存在问题,本地攻击者可以利用这个漏洞进行基于堆的溢出,可能以root用户权限在系统上执行任意指令。

问题存在于main.c中的parse_decode_path函数,此函数通过getenv("LOCATE_PATH")获得环境变量,但是此变量的分配可以由外部用户控制,如:

while ((part = strchr(part+1, ':'))) i++;

上面的part可以由用户提供,并可以使i为一个非常大的值,当后续进行malloc()操作的时:

SLOCATE_PATH = malloc(i * sizeof(char *));

就可以导致malloc()分配过小而发生基于堆的整数溢出,精心构建提交数据可能以root用户权限在系统上执行任意指令。

<*来源:bazarr (bazarr@ziplip.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=105337692202626&w=2
*>

建议:
厂商补丁:

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

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