CVE-2023-23452

9.8 CRITICAL

📋 TL;DR

This critical vulnerability in SICK FX0-GPNT firmware allows unauthenticated remote attackers to execute arbitrary code by sending specially crafted RK512 commands to TCP port 9000. Attackers can take full control of affected devices without any authentication. Organizations using SICK FX0-GPNT devices with vulnerable firmware versions are at risk.

💻 Affected Systems

Products:
  • SICK FX0-GPNT
Versions: Firmware versions V3.04 and V3.05
Operating Systems: Embedded firmware
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the RK512 protocol listener on TCP port 9000, which appears to be enabled by default in affected firmware versions.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of industrial control systems, allowing attackers to manipulate sensor data, disrupt operations, pivot to other network segments, or cause physical damage to connected equipment.

🟠

Likely Case

Remote code execution leading to device takeover, data exfiltration, installation of persistent malware, and use as a foothold for lateral movement within industrial networks.

🟢

If Mitigated

Limited impact if devices are properly segmented behind firewalls with strict network access controls and monitored for anomalous traffic patterns.

🌐 Internet-Facing: HIGH - Directly exploitable from the internet if devices are exposed, requiring no authentication and using a simple network protocol.
🏢 Internal Only: HIGH - Even internally, this provides an easy path for attackers who gain any network access to critical industrial control systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability requires no authentication and involves sending crafted network packets to a known port, making exploitation straightforward for attackers with network access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check SICK PSIRT for latest patched version

Vendor Advisory: https://sick.com/psirt

Restart Required: Yes

Instructions:

1. Check current firmware version on devices. 2. Contact SICK support for patched firmware. 3. Schedule maintenance window. 4. Backup device configuration. 5. Apply firmware update following SICK documentation. 6. Verify update success and restore configuration if needed.

🔧 Temporary Workarounds

Network Segmentation and Access Control

all

Block all access to TCP port 9000 from untrusted networks and restrict internal access to authorized systems only.

# Example firewall rule (adjust for your firewall):
# iptables -A INPUT -p tcp --dport 9000 -j DROP
# Windows Firewall: New-NetFirewallRule -DisplayName "Block SICK Port 9000" -Direction Inbound -LocalPort 9000 -Protocol TCP -Action Block

VLAN Segmentation

all

Isolate SICK devices on separate VLANs with strict inter-VLAN routing rules.

# Configure switch VLANs to isolate industrial devices
# Example: switchport access vlan 100
# Example: switchport mode access

🧯 If You Can't Patch

  • Implement strict network access controls to block all traffic to TCP port 9000 except from authorized management systems.
  • Deploy network monitoring and intrusion detection specifically for RK512 protocol anomalies on port 9000.

🔍 How to Verify

Check if Vulnerable:

Check device firmware version via SICK configuration tools or web interface. If version is V3.04 or V3.05, device is vulnerable.

Check Version:

Use SICK SOPAS ET configuration tool or check device web interface for firmware version information.

Verify Fix Applied:

Verify firmware version has been updated to a version later than V3.05. Test that RK512 commands from unauthorized sources are rejected.

📡 Detection & Monitoring

Log Indicators:

  • Unusual RK512 protocol traffic
  • Connection attempts to TCP port 9000 from unexpected sources
  • Device configuration changes without authorized maintenance

Network Indicators:

  • RK512 protocol traffic to port 9000 from non-authorized IPs
  • Malformed RK512 packets
  • High volume of connections to port 9000

SIEM Query:

source_port=9000 OR dest_port=9000 AND (protocol="RK512" OR payload_contains="RK512")

🔗 References

📤 Share & Export