freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

CVE-2021-26234:FastStone错误处理cur文件导致的远程代码执行漏洞
2023-07-10 10:07:46
所属地 北京

FastStone Image Viewer是一款快速、小巧、功能强大的综合图像浏览软件。

Part1 漏洞状态

漏洞细节漏洞POC漏洞EXP在野利用

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

# 渗透测试 # 网络安全 # 漏洞分析
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录