libXpm是一款对XPM进行解码的库系统。 libXpm多处不正确检查边界缓冲区长度,远程攻击者可以利用这个漏洞可能以用户进程权限执行任意指令。 问题一是xpmParseColors (parse.c)中的堆栈缓冲区溢出: XPMv1和XPMv2/3解析代码中不安全使用strcat(),可导致缓冲区溢出。 第二个问题是xpmParseColors (parse.c)中分配colorTable存在整数溢出问题,问题存在于如下: colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor)); ncolors可来自不可信的XPM文件。 第三个问题是ParseAndPutPixels (create.c)读取象素时存在堆栈缓冲区溢出。 构建恶意的XPM文件,诱使用户访问可导致以用户进程权限执行任意指令。
libXpm是一款对XPM进行解码的库系统。 libXpm多处不正确检查边界缓冲区长度,远程攻击者可以利用这个漏洞可能以用户进程权限执行任意指令。 问题一是xpmParseColors (parse.c)中的堆栈缓冲区溢出: XPMv1和XPMv2/3解析代码中不安全使用strcat(),可导致缓冲区溢出。 第二个问题是xpmParseColors (parse.c)中分配colorTable存在整数溢出问题,问题存在于如下: colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor)); ncolors可来自不可信的XPM文件。 第三个问题是ParseAndPutPixels (create.c)读取象素时存在堆栈缓冲区溢出。 构建恶意的XPM文件,诱使用户访问可导致以用户进程权限执行任意指令。