freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

CODESYS超危缓冲区溢出漏洞可致远程代码执行
2020-03-30 13:38:17

安全专家发现CODESYS web server中存在一个容易利用的基于堆的缓冲区溢出漏洞,漏洞编号为CVE-2020-10245。

用于工程控制系统的CODESYS自动化软件的web server中存在一个超危的基于堆的缓冲区溢出漏洞。远程,未经身份认证的攻击者可利用该漏洞造成服务器崩溃或执行任意代码。

CODESYS是德国公司Smart Software Solutions开发的一个软件平台,供自动化行业编写控制器应用程序。

CODESYS WebVisu使用CODESYS web server在通用web浏览器中显示CODESYS可视化界面。

该漏洞编号为CVE-2020-10245,容易被利用,CVSS v2评分为10。堆溢出是一种缓冲区溢出,内存的堆部分可被超出缓冲区的内容覆盖。通常,使用malloc()等函数分配缓冲区。

CODESYS在安全公告中表示,攻击者可借助特制的请求利用该漏洞造成基于堆的缓冲区溢出,进而使web server崩溃,导致拒绝服务或远程执行代码。由于web server是CODESYS运行时系统的组成部分,这可能会对整个运行时系统造成无法预料的反应。

该漏洞存在于CmpWebServerHandlerV3.dll(文件版本3.5.15.20)库中,源于该dll库未能妥当地验证由用户提交的发往web server URL端点的数据。

Tenable在一份分析报告中表示,“CmpWebServerHandlerV3.dll(文件版本3.5.15.20)存在一个堆溢出漏洞,源于未妥当验证由用户提交的发往CODESYS V3 web server URL端点/WebVisuV3的数据。”

“该漏洞源于在内存分配操作过程中MemGCGetSize函数向所请求的分配大小添加了0x5c字节。”

攻击者可通过向CmpWebServerHandlerV3组件发送一条WEB_CLIENT_OPENCONNECTION消息请求非常大的分配大小利用该漏洞。

该分析报告写道,“未经身份认证的,远程攻击者可通过向CmpWebServerHandlerV3组件发送一条WEB_CLIENT_OPENCONNECTION消息:|foo|-1|true|请求一个非常大的内存分配大小(例如0xffffffff)。”

“CmpWebServerHandlerV3组件(处于state 0时)试图为通信缓冲区分配-1(0xffffffff)字节。当SysMemAllocData函数被调用时,内存分配大小会溢出,实际上分配了一块小的堆缓冲区(0xffffffff+ 0x5c = 0x5b)。”

安全专家还发布了一段PoC利用代码,该代码可被用于终止32位的CODESYSControlService.exe。

该漏洞影响包含web server 3.5.15.40之前版本的CODESYSV3运行时系统所有版本,web server 3.5.15.40版本修复了该漏洞。


本文源自Security Affairs;转载请注明出处。

# CODESYS WebVisu
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者