受影响系统:
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 *>
建议:
厂商补丁:
teTeX ----- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.tug.org/teTeX/
|