CVE-2024-57086

7.5 HIGH

📋 TL;DR

This CVE describes a prototype pollution vulnerability in the fieldsToJson function of node-opcua-alarm-condition v2.134.0. Attackers can exploit this by sending specially crafted payloads to cause Denial of Service (DoS) conditions. Systems using this specific version of the OPC UA alarm condition library are affected.

💻 Affected Systems

Products:
  • node-opcua-alarm-condition
Versions: v2.134.0
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using the vulnerable version of this specific OPC UA library component.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service disruption of OPC UA alarm systems leading to operational downtime in industrial environments.

🟠

Likely Case

Service crashes or hangs requiring manual restart of affected OPC UA services.

🟢

If Mitigated

Limited impact with proper input validation and monitoring in place.

🌐 Internet-Facing: MEDIUM - Exploitation requires network access to OPC UA endpoints but payloads can be crafted remotely.
🏢 Internal Only: HIGH - Industrial control systems using this library are often critical infrastructure with high availability requirements.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires understanding of prototype pollution techniques and OPC UA protocol structure.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v2.135.0 or later

Vendor Advisory: https://github.com/node-opcua/node-opcua-alarm-condition

Restart Required: Yes

Instructions:

1. Update package.json to use node-opcua-alarm-condition v2.135.0 or later. 2. Run 'npm update node-opcua-alarm-condition'. 3. Restart all services using this library.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement input validation to reject malformed JSON payloads before they reach the vulnerable function.

// Add middleware to validate JSON structure before processing

🧯 If You Can't Patch

  • Implement network segmentation to isolate OPC UA systems from untrusted networks
  • Deploy WAF or reverse proxy with JSON payload inspection capabilities

🔍 How to Verify

Check if Vulnerable:

Check package.json or node_modules for node-opcua-alarm-condition version 2.134.0

Check Version:

npm list node-opcua-alarm-condition | grep node-opcua-alarm-condition

Verify Fix Applied:

Verify installed version is 2.135.0 or later using 'npm list node-opcua-alarm-condition'

📡 Detection & Monitoring

Log Indicators:

  • Unexpected service crashes
  • Memory exhaustion warnings
  • Unusual JSON parsing errors

Network Indicators:

  • Unusually large or malformed OPC UA messages
  • Repeated connection attempts with crafted payloads

SIEM Query:

source="opcua-service" AND (event="crash" OR event="memory_error" OR message="*prototype*" OR message="*fieldsToJson*")

🔗 References

📤 Share & Export