Critical Flaw in CODESYS Industrial Controller Software Allows Code Execution
Cisco’s Talos threat intelligence and research group revealed on Wednesday that one of its researchers discovered a critical remote code execution vulnerability in the CODESYS Control SoftPLC industrial controller software.
CODESYS Control SoftPLC is a runtime system that converts any PC or embedded device into an IEC 61131-3-compliant industrial controller.
A researcher from Cisco Talos discovered that the software’s PLC_Task functionality is affected by a vulnerability that can be exploited for remote code execution by sending specially crafted packets over the network. The security hole is tracked as CVE-2020-6081 and it has been assigned a CVSS score of 9.9, which puts it in the “critical severity” category.
Cisco has provided the following description for the vulnerability:
“Application code for CODESYS is compiled down to native machine code when sent from the programming software. This machine code is only subjected to a CRC32 check before being executed in the context of the codesys3 binary in a separate thread. By building an .app file with architecture appropriate shellcode an attacker can get remote code execution with the ability to upload projects. This upload can occur over SSH or the Codesys port 11740 using the proprietary protocol. In order to pass the CRC check, a .crc file has to be created with the CRC32 of the entire .app file.
This vulnerability exists due to the lack of enforcing cryptographic verification on the uploaded binary blob. Since authentication can be disabled for the port 11740 used for uploading PLC applications to the device, a cryptographic signature is required in order to verify that the binary comes from a trusted source. Without cryptographic verification, in the event that a device was configured to block all direct access to the device other then required application logic following IEC 61131 standards, arbitrary code could be executed directly on the device with the privileges associated with the Codesys runtime.”
Talos discovered the vulnerability in version 22.214.171.124 and reported it to CODESYS in early February. Talos said the vendor released a patch for the flaw, but there does not appear to be an advisory on CODESYS’s website.
Earlier this year, Talos reported finding a high-severity denial-of-service (DoS) vulnerability in CODESYS GatewayService, and researchers at Tenable discovered critical and high-severity flaws in CODESYS V3.
CODESYS software is used by many industrial solutions providers and some vulnerabilities have impacted hundreds of industrial control systems (ICS) from tens of vendors.