安全研究

安全漏洞
Tetex mkind.c命令行参数缓冲区溢出漏洞

发布日期:2007-05-07
更新日期:2007-05-18

受影响系统:
teTeX teTeX 3.0.0
teTeX teTeX 2.0.2
描述:
BUGTRAQ  ID: 23872
CVE(CAN) ID: CVE-2007-0650

teTeX是Linux上最常用的编辑器之一,几乎所有的Linux发行版都内置的这个软件。

teTeX在处理超长的路径名参数时存在缓冲区溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。

teTeX的mkind.c文件中的open_sty函数没有正确验证用户通过“-s”选项提供的参数数据:

150                         /* style file */
151                     case 's':
152                         argc--;
153                         if (argc <= 0)
154                             FATAL("Expected -s <stylefile>\n","");
155                         open_sty(*++argv);
156                         sty_given = TRUE;
157                         break;

sty_fn仅为72个字符,请见mkindex.h:

56 char    sty_fn[LINE_MAX];

(gdb) print LINE_MAX
$2 = 72
(gdb)

这允许恶意攻击者覆盖sty_fn[]缓冲区后的任意数据,导致执行任意指令。

此外mkind.c文件中的check_idx函数中还存在堆溢出漏洞,但由于无法控制覆盖地址,因此基本不可利用。

<*来源:Mark Richters
  
  链接:https://bugzilla.redhat.com/bugzilla/long_list.cgi?buglist=225491
*>

测试方法:

警 告

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

makeindex -s
/home/mr/perforce/tools/dblatex-0.2.3/share/dblatex/latex/scripts/doc.ist

建议:
厂商补丁:

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

http://www.tug.org/teTeX/

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