官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
FastStone Image Viewer是一款快速、小巧、功能强大的综合图像浏览软件。
Part1 漏洞状态
Part2 漏洞描述
漏洞名称 | FastStone错误处理cur文件导致的远程代码执行 |
CVE编号 | CVE-2021-26234 |
漏洞类型 | 远程代码执行 |
漏洞等级 | 7.8 高危 (High) |
公开状态 | 公开 |
漏洞描述 | FastStone Image Viewer <= 7.5 受到用户模式写入访问冲突的影响,当用户打开或查看由 FSViewer.exe 错误处理的格式错误的 CUR 文件时触发。攻击者可以利用此问题进行拒绝服务 (DoS) 或可可以实现远程代码执行。 |
时间线 | 2021-03-18漏洞提交 2021-03-21 CVE发布 |
受影响版本 | FastStone Image Viewer <= 7.5 |
分析环境:
Win10
FastStone Image Viewer 7.5
Part3 漏洞复现
1.测试文件放到桌面exp文件夹下
2. 打开FastStone Viewwer
3. 当前浏览目录切换到Desktop,这样就会解析到Desktop目录下exp里面的所有图片文件
4.弹出calc,复现成功!
Part4 漏洞分析
正常cur文件的BitCount值
测试cur文件BitCount值
关键漏洞流程
可以看到,这里从ebp-34读取BItcount到ecx,后根据cl向左位移eax当作读取大小数据。又在0x5BDF35位置再次左移两位读取大小数据。在0x5BDF43位置读取文件,读取指针在堆栈上,因此当测试文件BitCount数值过大时,会覆盖堆栈上的SEH。0x5BDF49位置在被堆栈上获取数值,触发异常,然后导致代码流程被控制。
执行readFile之后
可以看到,堆栈被破坏,seh handler被覆盖
最后触发异常,可以看到,最终走到异常代码被劫持的位置。
Part5 修复建议
1. 软件升级到最新版本
2. 检测读取函数是否溢出