CODESYS工业自动化软件中发现的10个关键缺陷

周四,网络安全研究人员披露了多达10个影响CODESYS自动化软件的关键漏洞,这些漏洞可被用来在可编程逻辑控制器(PLC)上实现远程代码执行。
“要利用这些漏洞,攻击者不需要用户名或密码;通过网络访问工业控制器就足够了,”Positive Technologies的研究人员说。“漏洞的主要原因是对输入数据的验证不足,这本身可能是由于未能遵守安全开发建议造成的。”
这家俄罗斯网络安全公司指出,它检测到了WAGO提供的PLC上的漏洞。WAGO与Beckhoff、Kontron、Moeller、Festo、Mitsubishi和HollySys等其他自动化技术公司一起,使用CODESYS软件对控制器进行编程和配置。
CODESYS为工业控制系统中的控制器应用程序编程提供了一个开发环境。这家德国软件公司赞扬了积极技术公司的Vyacheslav Moskvin、Denis Goryushev、Anton Dorfman、Ivan Kurnakov和Sergey Fedonin以及SCADAfence公司的Yossi Reuven报告了这些缺陷。
CODESYS V2中发现了六个最严重的缺陷。3 CODESYS WebVisu用于在web浏览器中可视化人机界面(HMI)的web服务器组件。攻击者可能会利用这些漏洞发送精心编制的web服务器请求,以触发拒绝服务条件,在控制运行时系统的内存中写入或读取任意代码,甚至使CODESYS web服务器崩溃。
在CVSS量表上,所有这六个bug都被评为10分之10—;
- CVE-2021-30189-基于堆栈的缓冲区溢出
- CVE-2021-30190-访问控制不当
- CVE-2021-30191-不检查输入大小的缓冲区复制
- CVE-2021-30192-未正确执行安全检查
- CVE-2021-30193-越界写入
- CVE-2021-30194-越界读取
另外,Control V2运行时系统中披露的其他三个弱点(CVSS分数:8.8)可能被滥用,以制造恶意请求,从而导致拒绝服务情况或被用于远程代码执行。
- CVE-2021-30186-基于堆的缓冲区溢出
- CVE-2021-30188-基于堆栈的缓冲区溢出
- CVE-2021-30195-输入验证不正确
最后,在CODESYS Control V2 Linux系统文件库(CVE-2021-30187,CVSS分数:5.3)中发现的一个缺陷可用于调用其他PLC函数,从而允许不良参与者删除文件并中断关键流程。
CODESYS在其公告中警告称,“技能较低的攻击者将能够利用这些漏洞进行攻击,”并补充说,它没有发现专门针对这些漏洞的已知公开攻击。
“他们的利用可能导致PLC上的远程命令执行,这可能会中断技术流程,导致工业事故和经济损失,”Positive Technologies的ICS安全主管弗拉基米尔·纳扎罗夫(Vladimir Nazarov)说。“利用类似漏洞最臭名昭著的例子是使用Stuxnet。”
CODESYS缺陷的披露紧跟着西门子SIMATIC S7-1200和S7-1500 PLC中解决的类似问题,攻击者可以利用这些问题远程访问内存的受保护区域,并实现不受限制且未被检测到的代码执行。