CVE:CVE-2005-3186
CNNVD:CNNVD-200511-275
GTK+是用于创建图形用户界面的多平台工具包。
多家厂商的GTK+ gdk-pixbuf XPM图形渲染库实现中存在远程堆溢出漏洞，成功利用这个漏洞的攻击者可以在用户系统上执行任意代码。
函数库在处理XPM文件时存在整数溢出：
if (n_col <= 0 || n_col >= G_MAXINT / (cpp + 1)) {
 g_set_error (error，
 GDK_PIXBUF_ERROR，
 GDK_PIXBUF_ERROR_CORRUPT_IMAGE，
 _("XPM file has invalid number of colors"));
 return NULL;
 [...]
 colors = (XPMColor *) g_try_malloc ((sizeof (XPMColor) * n_col));
 [...]
n_col有效性检查可以防范第一个g_try_malloc中的整数溢出，但没有正确的检查第二个g_try_malloc，这可能导致分配不充分的堆缓冲区，然后在拷贝循环中将n_col用作上边界覆盖缓冲区。
solution:Upgrade gnome gdkpixbuf to a higher version than *; Upgrade gtk gtk+ to a higher version than 2.4.0,and avoid the version 2.4.0