Lucene search

K
seebugRootSSV:2781
HistoryJan 08, 2008 - 12:00 a.m.

GNU libcdio库cd-info/iso-info文件栈溢出漏洞

2008-01-0800:00:00
Root
www.seebug.org
19

EPSS

0.019

Percentile

88.8%

BUGTRAQ ID: 27131
CVE(CAN) ID: CVE-2007-6613

GNU压缩磁盘输入和控制库(libcdio)是用于访问CD-ROM和CD镜像的函数库。

libcdio库的cd-info.c和iso-info.c文件中的print_iso9660_recurse()函数中存在栈溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。

如果用户受骗使用该库加载了包含有超长joilet文件名的磁盘或镜像的话,就可能导致拒绝服务(core dump)或执行任意指令。以下是src/iso-info.c的print_iso9660_recurse函数中的漏洞代码:

_CDIO_LIST_FOREACH (entnode, entlist)
{
iso9660_stat_t *p_statbuf = _cdio_list_node_data (entnode);
char *psz_iso_name = p_statbuf->filename;
char _fullname[4096] = { 0, };
char translated_name[MAX_ISONAME+1];

  if (yep != p_statbuf->rr.b3_rock || 1 == opts.no_rock_ridge) {
    iso9660_name_translate_ext(psz_iso_name, translated_name,
                               i_joliet_level);
    snprintf (_fullname, sizeof (_fullname), "%s%s", psz_path,
              translated_name);
  } else {
    snprintf (_fullname, sizeof (_fullname), "%s%s", psz_path,
              psz_iso_name);

GNU libcdio 0.79
GNU

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

<a href=“http://bugs.gentoo.org/attachment.cgi?id=140011” target=“_blank”>http://bugs.gentoo.org/attachment.cgi?id=140011</a>


                                                1.&nbsp;mkdir&nbsp;-p&nbsp;tmp/dir1
2.&nbsp;echo&nbsp;file_with_really_really_long_silly_name_to_test_iso_info_buffer
3.&nbsp;mkisofs&nbsp;-J&nbsp;-R&nbsp;-volid&nbsp;My_Image&nbsp;-o&nbsp;test.iso&nbsp;tmp
4.&nbsp;iso-info&nbsp;