CVE-2021-26234:FastStone错误处理cur文件导致的远程代码执行漏洞
2023-7-10 10:7:46 Author: www.freebuf.com(查看原文) 阅读量:12 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

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. 检测读取函数是否溢出


文章来源: https://www.freebuf.com/vuls/371501.html
如有侵权请联系:admin#unsafe.sh