全球工业 PLC 受到 CODESYS V3 RCE 缺陷的影响

发布时间:2023-08-12 07:29

科德系统

全球工业环境中使用的数百万个 PLC(可编程逻辑控制器)面临 CODESYS V3 软件开发套件中 15 个漏洞的风险,这些漏洞允许远程代码执行 (RCE) 和拒绝服务 (DoS) 攻击。

超过 500 家设备制造商使用 CODESYS V3 SDK 根据 IEC 61131-3 标准对 1,000 多种 PLC 型号进行编程,从而允许用户开发自定义自动化序列。

该 SDK 还提供 Windows 管理界面和模拟器,允许用户在将其部署到生产中之前测试其 PLC 配置和编程。

Microsoft 研究人员发现了CODESYS V3 SDK 中的 15 个缺陷  ,并于 2022 年 9 月向 CODESYS 报告了这些缺陷。该供应商于 2023 年 4 月发布了安全更新来解决已发现的问题。

由于这些设备的性质,它们不会经常更新来解决安全问题,因此微软的安全团队昨天发布了一篇详细的帖子,以提高人们对风险的认识并帮助加快修补速度。

暴露在互联网上的 CODESYS 设备
暴露在互联网上的 CODESYS 设备
来源:微软

CODESYS 漏洞

Microsoft 检查了 Schnieder Electric 和 WAGO 的两个使用 CODESYS V3 的 PLC,发现了 15 个高严重性漏洞(CVSS v3:7.5 – 8.8)。

这些缺陷包括:CVE-2022-47378、CVE-2022-47379、CVE-2022-47380、CVE-2022-47381、CVE-2022-47382、CVE-2022-47383、CVE-2022-47384、CVE-2022- 47385、CVE-2022-47386、CVE-2022-47387、CVE 2022-47388、CVE-2022-47389、CVE-2022-47390、CVE-2022-47392、CVE-2022-47393。

主要问题在于 SDK 的标签解码机制,特别是标签在没有验证其大小的情况下被复制到设备缓冲区中,从而为攻击者提供了缓冲区溢出的机会。

这些标签是数据或数据结构的载体,为 PLC 的功能提供关键指令。

缓冲区溢出问题并不是孤立的,微软在 15 个 CODESYS V3 SDK 组件中发现了该问题,包括 CMPTraceMgr、CMPapp、CMPDevice、CMPApp、CMPAppBP、CMPAppForce 和 CMPFileTransfer。

尽管这些缺陷需要身份验证才能利用,但微软表示可以通过使用 CVE-2019-9013来绕过这一要求,CVE-2019-9013 是影响 CODESYS V3 的另一个缺陷,它在传输过程中以明文形式暴露用户凭据,如下所示。

 

在 15 个案例中的 12 个案例中,微软的分析师能够利用该缺陷在 PLC 上获得远程代码执行。

CODESYS 的 安全公告 列出了以下产品,如果它们运行 3.5.19.0 之前的版本,则无论硬件和操作系统配置如何,它们都会受到影响:

  • CODESYS 控制 RTE (SL)
  • CODESYS Control RTE(用于 Beckhoff CX)SL
  • CODESYS Control Win (SL)
  • CODESYS 控制运行时系统工具包
  • CODESYS 安全 SIL2 运行时工具包
  • CODESYS 安全 SIL2 PSP
  • CODESYS 人机界面 (SL)
  • CODESYS开发系统V3
  • CODESYS 开发系统 V3 仿真运行时

除上述产品外,以下产品在 4.8.0.0 之前的版本中也受到影响:

  • BeagleBone SL 的 CODESYS 控制
  • emPC-A/iMX6 SL 的 CODESYS 控制
  • IOT2000 SL 的 CODESYS 控制
  • Linux SL 的 CODESYS 控制
  • PFC100 SL 的 CODESYS 控制
  • PFC200 SL 的 CODESYS 控制
  • PLCnext SL 的 CODESYS 控制
  • 适用于 Raspberry Pi SL 的 CODESYS 控制
  • 适用于 WAGO 触摸屏 600 SL 的 CODESYS 控制

建议管理员尽快升级到 CODESYS V3 v3.5.19.0,同时微软还建议断开 PLC 和其他关键工业设备与互联网的连接。

客户热线:037125966675