Lucene search

K
seebugRootSSV:1749
HistoryMay 14, 2007 - 12:00 a.m.

LibEXIF exif_data_load_data_entry函数远程整数溢出漏洞

2007-05-1400:00:00
Root
www.seebug.org
13

libexif是用C编写的函数库,用于从图形文件中读写EXIF元信息。

libexif在处理图形文件中的畸形EXIF信息时存在整数溢出漏洞,远程攻击者可能利用此漏洞控制客户机。

如果用户受骗打开了恶意的图形文件的话,就可能触发这个溢出,导致使用该函数库的应用程序崩溃或执行任意指令。漏洞代码位于libexif/exif-data.c文件186行的exif_data_load_data_entry()函数:

/* Sanity check */
if (size < doff + s)
return;

entry->data = exif_data_alloc (data, s);
if (entry->data) {
entry->size = s;
memcpy (entry->data, d + doff, s);
}

对于以下例子:

s=296
doff=4294901874
s=65535

doff+s是4294967409,这个值小于s,而C语言使用2的32次方(2^sizeof(int))算法,因此doff+s为113。

libexif libexif < 0.6.14
厂商补丁:

libexif

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

<a href=“http://downloads.sourceforge.net/libexif/libexif-0.6.14.tar.bz2?modtime=1178817867&amp;big_mirror=0” target=“_blank”>http://downloads.sourceforge.net/libexif/libexif-0.6.14.tar.bz2?modtime=1178817867&amp;big_mirror=0</a>


                                                http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1716196&amp;group_id=12272&amp;atid=112272