用于工程控制系统的 CODESYS 自动化软件 web 服务器中被指存在一个严重漏洞(CVE-2020-10245),可导致远程未认证攻击者使服务器崩溃或执行代码。该漏洞为堆溢出漏洞, CVSS v2 评分为满分10分,利用难度低。

自动化专家使用 CODESYS 软件套件作为编程控制器应用程序的开发环境,通常见于工业环境。它是由德国公司 Smart Software Solutions(3S) 开发的,用于使自动化解决方案工程更方便,是独立于平台的开发环境,兼容可编程逻辑控制器 (PLC) 硬件和数百家企业使用的很多其它自动化组件。CODESYS web 服务器用于在 web 浏览器中展示 CODESYS 系统可视化屏幕。

3S 公司发布安全公告指出,“它可导致 Web 服务器崩溃,引发拒绝服务条件或可被用于执行远程代码。由于 Web 服务器是 CODESYS 运行时系统的一部分,因此可导致整个运行时系统产生不可预见的行为。”

漏洞详情

Tenable 公司本周发布分析指出,该漏洞的问题在于,web 服务器库 CmpWebServerHandlerV3.dll(文件版本 3.5.15.20)未正确验证发送至 web 服务器 URL 端点的用户输入数据的有效性。因此攻击者可通过向 CmpWebServerHandlerV3组件发送WEB_CLIENT_OPENCONNECTION 信息,请求非常大的内存分配大小,利用该漏洞。

更具体而言,“该缺陷的产生是因为 MemGCGetSize 函数在内存分配操作时,向所请求的分配大小增加了 0x5c 字节。这个额外的 0x5c字节似乎用于内存垃圾分配目的。MemGCGetSize 函数在 SysMemAllocData 函数中调用,而该函数被很多 CODESYS 组件用于从堆中分配内存。”

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

GitHub 上发布的 PoC 显示,可使用一个 exploit 终止 web 服务器中的32位 “CODESYSControlService.exe”进程。

在 CODESYS 版本3中,web 服务器 (CmpWebServer 和 CmpWebServerHandler) 是CODESYS 运行时系统的可选部分。3S 公司指出,包含 web 服务器 V3.5.15.40 的CODESYS V3运行时系统均受影响,而不论 CPU 的类型或操作系统是什么。建议用户更新至最新版本 V3.5.15.40。

原文链接

https://threatpost.com/critical-codesys-bug-remote-code-execution/154213/

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。