CVE-2020-12517

8.8 HIGH

📋 TL;DR

This is a cross-site scripting (XSS) vulnerability in Phoenix Contact PLCnext Control Devices that allows authenticated low-privileged users to inject malicious JavaScript. When an administrator visits the compromised web interface, the attacker can gain administrative privileges through local privilege escalation. Affected systems are Phoenix Contact PLCnext Control Devices running versions before 2021.0 LTS.

💻 Affected Systems

Products:
  • Phoenix Contact PLCnext Control Devices
Versions: All versions before 2021.0 LTS
Operating Systems: PLCnext Runtime
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated access to the web interface, but default configurations typically allow user authentication.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An authenticated attacker gains full administrative control over the PLC device, potentially modifying industrial processes, disrupting operations, or establishing persistence for further attacks.

🟠

Likely Case

An insider or compromised low-privileged account escalates to admin privileges, gaining unauthorized access to device configuration and control functions.

🟢

If Mitigated

With proper network segmentation and access controls, the impact is limited to the affected device only, preventing lateral movement to other systems.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated access but uses common XSS techniques that are well-understood by attackers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2021.0 LTS or later

Vendor Advisory: https://cert.vde.com/en-us/advisories/vde-2020-049

Restart Required: Yes

Instructions:

1. Download the 2021.0 LTS firmware update from Phoenix Contact support portal. 2. Backup current configuration. 3. Apply firmware update following vendor instructions. 4. Restart the device. 5. Verify the update was successful.

🔧 Temporary Workarounds

Restrict Web Interface Access

all

Limit access to the PLC web interface to only trusted administrators using network controls.

Implement Content Security Policy

all

Add HTTP headers to restrict JavaScript execution if supported by the device.

🧯 If You Can't Patch

  • Segment PLC devices on isolated networks with strict firewall rules
  • Implement strict access controls and monitor for unusual authentication patterns

🔍 How to Verify

Check if Vulnerable:

Check the firmware version in the web interface or using vendor-specific tools. If version is below 2021.0 LTS, the device is vulnerable.

Check Version:

Vendor-specific commands vary by device model. Typically accessed via web interface at /status or /about pages.

Verify Fix Applied:

Verify firmware version shows 2021.0 LTS or higher in the device web interface or management console.

📡 Detection & Monitoring

Log Indicators:

  • Unusual authentication patterns from low-privileged users
  • Multiple failed login attempts followed by successful admin access
  • JavaScript injection patterns in web logs

Network Indicators:

  • Unusual HTTP POST requests to web interface with script tags
  • Traffic from low-privileged user accounts accessing admin endpoints

SIEM Query:

source="plcnext_web_logs" AND (http_uri="*script*" OR http_user_agent="*script*" OR http_referer="*javascript*")

🔗 References

📤 Share & Export