多家Unix/Linux厂商Xpdf makeFileKey2堆栈溢出漏洞
发布日期:2005-01-17
更新日期:2005-02-04
受影响系统:Xpdf Xpdf 3.00
不受影响系统:Xpdf Xpdf 3.00pl3
描述:
BUGTRAQ ID:
12302
CVE(CAN) ID:
CVE-2005-0064
Xpdf是一款开放源代码的查看PDF文件程序。
Xpdf在处理包含恶意数据的PDF文件时存在问题,远程攻击者可以利用这个漏洞可能以进程权限在系统上执行任意指令。
问题存在于Xpdf处理PDF文件中恶意/Encrypt /Length值时缺少正确的边界检查,有问题代码存在于xpdf/Decrypt.cc文件的Decrypt::makeFileKey2函数中:
GBool Decrypt::makeFileKey2(int encVersion, int encRevision,
int keyLength, GString *ownerKey,
GString *userKey, int permissions,
GString *fileID, String *userPassword,
Guchar *fileKey) {
Guchar *buf;
Guchar test[32];
Guchar fState[256];
Guchar tmpKey[16];
Guchar fx, fy;
int len, i, j;
GBool ok;
...
memcpy(test, userKey->getCString(), 32);
for (i = 19; i >= 0; --i) {
for (j = 0; j < keyLength; ++j) {
[overflow] tmpKey[j] = fileKey[j] ^ i;
}
...
}
...
}
上面代码中,keyLength值由PDF文件提供,允许攻击者指定任意大的值而覆盖部分堆栈内存,精心构建PDF文件,可能以进程权限在系统上执行任意指令。
<*来源:iDEFENSE Security Advisory (
labs@idefense.com)
链接:
http://www.idefense.com/application/poi/display?id=186&type=vulnerabilities
*>
建议:
厂商补丁:
Xpdf
----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.00pl3.patch
下载使用Xpdf 3.00pl3:
http://www.foolabs.com/xpdf/download.html浏览次数:2567
严重程度:0(网友投票)