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可能会出现整数溢出,导致执行任意代码。
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可能会出现整数溢出,导致执行任意代码。