CVE-2022-21159

7.5 HIGH

📋 TL;DR

CVE-2022-21159 is a denial-of-service vulnerability in libiec61850's parseNormalModeParameters function where specially crafted IEC 61850 network messages can crash the service. This affects systems using MZ Automation's libiec61850 library version 1.5.0 for industrial control and energy automation communications.

💻 Affected Systems

Products:
  • MZ Automation GmbH libiec61850
Versions: Version 1.5.0
Operating Systems: Linux, Windows, Embedded systems
Default Config Vulnerable: ⚠️ Yes
Notes: Affects any system using libiec61850 1.5.0 with IEC 61850 protocol enabled. Industrial control systems, SCADA systems, and energy automation equipment are primary targets.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service disruption of IEC 61850-enabled devices, potentially affecting industrial control systems, power grid equipment, or substation automation systems.

🟠

Likely Case

Service crashes requiring manual restart of affected applications or devices, causing temporary operational disruption.

🟢

If Mitigated

Minimal impact with proper network segmentation and monitoring; affected services automatically restart with minimal downtime.

🌐 Internet-Facing: MEDIUM - Requires specific IEC 61850 protocol knowledge and network access, but industrial systems should not be internet-facing.
🏢 Internal Only: HIGH - Within industrial networks, attackers with internal access could disrupt critical operations.

🎯 Exploit Status

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

Exploit requires sending malformed IEC 61850 messages to vulnerable endpoints. Public details available in Talos Intelligence reports.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libiec61850 1.5.1 and later

Vendor Advisory: https://github.com/mz-automation/libiec61850/commit/cfa94cbf10302bedc779703f874ee2e8387a0721

Restart Required: Yes

Instructions:

1. Update libiec61850 to version 1.5.1 or later. 2. Recompile any applications using the library. 3. Restart affected services. 4. Test IEC 61850 functionality.

🔧 Temporary Workarounds

Network Segmentation

all

Isolate IEC 61850 traffic to trusted networks only

Firewall Rules

linux

Restrict access to IEC 61850 ports (default 102) to authorized sources only

iptables -A INPUT -p tcp --dport 102 -s trusted_ip -j ACCEPT
iptables -A INPUT -p tcp --dport 102 -j DROP

🧯 If You Can't Patch

  • Implement strict network access controls to limit IEC 61850 traffic to trusted sources only
  • Deploy intrusion detection systems to monitor for malformed IEC 61850 messages and alert on suspicious patterns

🔍 How to Verify

Check if Vulnerable:

Check libiec61850 version: ldd --version on linked applications or check library files

Check Version:

strings /usr/lib/libiec61850.so | grep 'libiec61850' or check package manager

Verify Fix Applied:

Verify version is 1.5.1 or later and test with IEC 61850 message fuzzing tools

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults
  • Unexpected service restarts
  • Error logs mentioning parseNormalModeParameters

Network Indicators:

  • Unusual volume of IEC 61850 messages from single source
  • Malformed IEC 61850 packets on port 102/TCP

SIEM Query:

source_port:102 AND (packet_size:>1500 OR protocol_anomaly:true)

🔗 References

📤 Share & Export