BUGTRAQ ID: 32518
Common Unix Printing System(CUPS)是一款通用Unix打印系统,是Unix环境下的跨平台打印解决方案,基于Internet打印协议,提供大多数PostScript和raster打印机服务。
CUPS PNG过滤器的_cupsImageReadPNG()函数中执行了以下计算:
bufsize = img->xsize * img->ysize * 3;
if ((bufsize / (img->ysize * 3)) != img->xsize)
{
fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
(unsigned)width, (unsigned)height);
fclose(fp);
return (1);
}
验证代码的img->ysize * 3可能会出现整数溢出,导致执行任意代码。
Easy Software Products CUPS < 1.3.10
Easy Software Products
----------------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://www.cups.org/strfiles/2974/str2974.patch target=_blank>http://www.cups.org/strfiles/2974/str2974.patch</a>
暂无评论