安全研究

安全漏洞
Libgtop2库本地栈溢出漏洞

发布日期:2007-01-15
更新日期:2007-01-16

受影响系统:
GNOME Libgtop2 2.14.6
描述:
BUGTRAQ  ID: 22054

Libgtop2是GNOME中的一个函数库,用于获取有关CPU、内存和磁盘使用方面的信息。

Libgtop2超长进程名时存在缓冲区溢出漏洞,本地攻击者可能利用此漏洞提升权限。

Libgtop2的sysdeps/linux/procmap.c文件的glibtop_get_proc_map_s()函数中存在栈溢出漏洞:

155 char line[1024];
[...]
164 char filename [GLIBTOP_MAP_FILENAME_LEN+1];
165
166 glibtop_map_entry *entry;
167
168 if (!fgets(line, sizeof line, maps))
169 break;
170
171 /* 8 arguments */
172 rv = sscanf(line, PROC_MAPS_FORMAT,
173 &start, &end, flags, &offset,
174 &dev_major, &dev_minor, &inode, filename);

GLIBTOP_MAP_FILENAME_LEN为215(include/glibtop/procmap.h),PROC_MAPS_FORMAT被定义为%16llx-%16llx %4c %16llx %02hx:%02hx %llu%*[]%[^\n]\n 。maps定义为/proc/<pid>/smaps,在这种情况下第一行类似于00400000-00404000 r-xp 00000000 08:07 1849138
/home/michael/tmp/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/[...]

如果sscanf 'filename'所包含的文件名大于字符数组的话就会溢出到栈中。

攻击者可以通过运行有特制超长路径的进程并诱骗用户运行使用了该函数库的应用程序(如gnome-system-monitor)来利用这个漏洞,导致获得权限提升。

<*来源:Liu Qishuai
  
  链接:http://secunia.com/advisories/23736/
        http://bugzilla.gnome.org/show_bug.cgi?id=396477
*>

建议:
厂商补丁:

GNOME
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://bugzilla.gnome.org/attachment.cgi?id=80254

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