CVE-2021-43932

9.0 CRITICAL

📋 TL;DR

CVE-2021-43932 is a cross-site scripting (XSS) vulnerability in Elcomplus SmartPTT SCADA software where attackers can inject malicious JavaScript into a specific parameter. When users access the dashboard or main page, the injected code executes in their browser context. This affects organizations using vulnerable versions of SmartPTT for industrial control systems.

💻 Affected Systems

Products:
  • Elcomplus SmartPTT
Versions: All versions prior to 1.3.4.21
Operating Systems: Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the web interface component of SmartPTT SCADA systems used in industrial environments.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, hijack sessions, install malware on operator workstations, manipulate HMI displays to hide real conditions, or pivot to deeper network access.

🟠

Likely Case

Attackers would steal session cookies to gain unauthorized access, deface interfaces, or redirect users to malicious sites for credential harvesting.

🟢

If Mitigated

With proper network segmentation and browser security controls, impact would be limited to interface manipulation without deeper system compromise.

🌐 Internet-Facing: HIGH - If SmartPTT web interface is exposed to internet, attackers can easily exploit this without internal access.
🏢 Internal Only: MEDIUM - Requires internal network access or social engineering to deliver malicious links to users.

🎯 Exploit Status

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

Simple reflected XSS requiring only web browser access to vulnerable parameter. Exploitation details are publicly documented in ICS advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 1.3.4.21 and later

Vendor Advisory: https://www.cisa.gov/uscert/ics/advisories/icsa-22-109-04

Restart Required: Yes

Instructions:

1. Download SmartPTT version 1.3.4.21 or later from Elcomplus. 2. Backup current configuration. 3. Stop SmartPTT services. 4. Install updated version. 5. Restart services and verify functionality.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement web application firewall or reverse proxy with XSS filtering for SmartPTT interface

# Configure ModSecurity or similar WAF with XSS rules
# Example for nginx: add_header X-XSS-Protection "1; mode=block";

Network Segmentation

all

Isolate SmartPTT web interface from untrusted networks

# Firewall rules to restrict access
iptables -A INPUT -p tcp --dport [SmartPTT-port] -s [trusted-nets] -j ACCEPT
iptables -A INPUT -p tcp --dport [SmartPTT-port] -j DROP

🧯 If You Can't Patch

  • Implement strict Content Security Policy headers to block inline script execution
  • Deploy browser security extensions that prevent XSS payload execution on operator workstations

🔍 How to Verify

Check if Vulnerable:

Test parameter injection by accessing SmartPTT web interface and submitting <script>alert('test')</script> in vulnerable parameter, checking if script executes.

Check Version:

Check SmartPTT version in web interface footer or via Windows Programs and Features

Verify Fix Applied:

After patching, repeat XSS test - script should not execute and input should be properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual parameter values containing script tags in web server logs
  • Multiple failed login attempts followed by successful access from new IP

Network Indicators:

  • HTTP requests with script tags in parameters to SmartPTT port
  • Unexpected outbound connections from operator workstations

SIEM Query:

source="smartptt.log" AND ("<script>" OR "javascript:" OR "onerror=" OR "onload=")

🔗 References

📤 Share & Export