Description
OpenPLC_V3 has a vulnerability in the enipThread function that occurs due to the lack of a return value. This leads to a crash when the server loop ends and execution hits an illegal ud2 instruction. This issue can be triggered remotely without authentication by starting the same server multiple times or if the server exits unexpectedly. The vulnerability allows an attacker to cause a Denial of Service (DoS) against the PLC runtime, stopping any PC started remotely without authentication. This results in the PLC process crashing and halting all automation or control logic managed by OpenPLC.
Problem types
Product status
Any version before pull request #292
Credits
Renato Garreton of TryHackMe reported this vulnerability to CISA.
References
www.cisa.gov/news-events/ics-advisories/icsa-25-273-05
github.com/thiagoralves/OpenPLC_v3