CVE-2025-13970

8.0 HIGH

📋 TL;DR

OpenPLC_V3 lacks CSRF protection, allowing attackers to trick logged-in administrators into clicking malicious links that modify PLC settings or upload harmful programs. This affects all OpenPLC_V3 installations with web interfaces accessible to administrators. The vulnerability could disrupt or damage connected industrial control systems.

💻 Affected Systems

Products:
  • OpenPLC_V3
Versions: All versions prior to patched release
Operating Systems: All platforms running OpenPLC_V3
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in the web interface component. Systems without web interface exposure are not affected.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

An attacker could upload malicious programs to PLCs, causing physical damage to industrial equipment, production shutdowns, or safety hazards in critical infrastructure.

🟠

Likely Case

Attackers modify PLC configurations or upload programs causing operational disruption, data manipulation, or unauthorized control of industrial processes.

🟢

If Mitigated

With proper CSRF tokens and authentication controls, the attack surface is reduced to authenticated sessions only, limiting impact to credential compromise scenarios.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires social engineering to trick authenticated administrators. No authentication bypass needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check vendor advisory for specific patched version

Vendor Advisory: https://www.cisa.gov/news-events/ics-advisories/icsa-25-345-10

Restart Required: Yes

Instructions:

1. Review CISA advisory ICSA-25-345-10. 2. Update OpenPLC_V3 to patched version. 3. Restart OpenPLC service. 4. Verify CSRF protection is enabled.

🔧 Temporary Workarounds

Implement CSRF Tokens

all

Add CSRF token validation to all state-changing requests in OpenPLC web interface

Manual code modification required - implement anti-CSRF tokens in web forms

Network Segmentation

all

Isolate OpenPLC web interface from untrusted networks

Configure firewall rules to restrict access to OpenPLC web interface

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate OpenPLC from user workstations
  • Require multi-factor authentication for administrative access and implement session timeouts

🔍 How to Verify

Check if Vulnerable:

Test web forms for absence of CSRF tokens by inspecting HTTP requests for anti-CSRF headers or tokens

Check Version:

Check OpenPLC web interface version in admin panel or configuration files

Verify Fix Applied:

Verify that all POST/PUT/DELETE requests include valid CSRF tokens that are validated server-side

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed CSRF token validations
  • Unauthorized configuration changes from unexpected IPs
  • PLC program uploads from non-admin workstations

Network Indicators:

  • HTTP requests to OpenPLC web interface without CSRF tokens
  • Configuration changes via GET requests

SIEM Query:

source="openplc.log" AND (event="config_change" OR event="program_upload") AND NOT user="admin"

🔗 References

📤 Share & Export