CVE-2020-18757
📋 TL;DR
CVE-2020-18757 is a vulnerability in Dut Computer Control Engineering Co.'s PLC MAC1100 that allows attackers to cause persistent denial of service via specially crafted network packets. This affects industrial control systems using the MAC1100 PLC, potentially disrupting critical operations in manufacturing, infrastructure, or other industrial environments.
💻 Affected Systems
- Dut Computer Control Engineering Co. PLC MAC1100
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete and persistent shutdown of PLC operations requiring physical reset or replacement, causing extended production downtime, safety system failures, or process disruptions in critical infrastructure.
Likely Case
Temporary or intermittent PLC unresponsiveness requiring manual intervention to restore functionality, leading to production delays and operational inefficiencies.
If Mitigated
Minimal impact with proper network segmentation and monitoring allowing quick detection and isolation of attack attempts.
🎯 Exploit Status
Public GitHub repository contains proof-of-concept code. Exploitation requires only network access to the PLC and knowledge of the crafted packet format.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: No vendor advisory found in provided references
Restart Required: Yes
Instructions:
1. Contact Dut Computer Control Engineering Co. for firmware updates or patches. 2. If patch is available, download from vendor portal. 3. Backup PLC configuration. 4. Apply firmware update following vendor instructions. 5. Restart PLC. 6. Restore configuration if needed.
🔧 Temporary Workarounds
Network Segmentation and Firewall Rules
allIsolate PLCs from untrusted networks and restrict access to necessary IP addresses only
# Example firewall rule to restrict access (adjust IPs as needed)
iptables -A INPUT -p tcp --dport [PLC_PORT] -s [TRUSTED_IP] -j ACCEPT
iptables -A INPUT -p tcp --dport [PLC_PORT] -j DROP
Network Monitoring and Rate Limiting
linuxImplement network monitoring to detect attack patterns and rate limit traffic to PLCs
# Example rate limiting with iptables
iptables -A INPUT -p tcp --dport [PLC_PORT] -m limit --limit 10/min --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --dport [PLC_PORT] -j DROP
🧯 If You Can't Patch
- Implement strict network segmentation with industrial DMZ architecture
- Deploy intrusion detection systems specifically tuned for industrial protocols
🔍 How to Verify
Check if Vulnerable:
Test with proof-of-concept code from GitHub repository or attempt to send crafted packets to PLC port (not recommended in production). Monitor PLC responsiveness after network traffic.
Check Version:
Check PLC firmware version through vendor software or web interface (specific command varies by configuration)
Verify Fix Applied:
After applying workarounds, test that PLC remains responsive during normal operation and that unauthorized network access is blocked.
📡 Detection & Monitoring
Log Indicators:
- PLC going offline unexpectedly
- Multiple connection attempts to PLC port
- PLC requiring manual reset
Network Indicators:
- Unusual traffic patterns to PLC ports
- Packets with malformed structure to PLC
- Traffic from unauthorized IP addresses to PLC
SIEM Query:
source_ip NOT IN (trusted_ips) AND destination_port = [PLC_PORT] AND protocol = tcp