CVE-2025-29953

9.8 CRITICAL

📋 TL;DR

This vulnerability allows malicious Apache ActiveMQ servers to send specially crafted responses to NMS OpenWire clients, leading to arbitrary code execution on client systems through deserialization attacks. It affects all Apache ActiveMQ NMS OpenWire Client versions before 2.1.1 when connecting to untrusted servers. The vulnerability is critical with a CVSS score of 9.8.

💻 Affected Systems

Products:
  • Apache ActiveMQ NMS OpenWire Client
Versions: All versions before 2.1.1
Operating Systems: Windows, Linux, macOS - any OS running .NET
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects clients connecting to untrusted ActiveMQ servers. The vulnerability is in the client-side deserialization when processing server responses.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of client systems with remote code execution, potentially leading to data theft, lateral movement, and full system control.

🟠

Likely Case

Attackers hosting malicious ActiveMQ servers to exploit clients connecting to them, resulting in client system compromise.

🟢

If Mitigated

Limited impact with proper network segmentation and client-server trust relationships, though risk remains if connecting to untrusted servers.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires client to connect to malicious server. The vulnerability bypasses the allow/denylist feature introduced in version 2.1.0.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.1.1

Vendor Advisory: https://lists.apache.org/thread/vc1sj9y3056d3kkhcvrs9fyw5w8kpmlx

Restart Required: Yes

Instructions:

1. Identify all systems using Apache ActiveMQ NMS OpenWire Client. 2. Update to version 2.1.1 or later. 3. Restart all affected applications/services. 4. Consider migrating away from .NET binary serialization as recommended.

🔧 Temporary Workarounds

Restrict Client Connections

all

Only allow NMS OpenWire clients to connect to trusted, internal ActiveMQ servers

Implement network segmentation and firewall rules to restrict outbound connections from clients

Disable Binary Serialization

all

Migrate to alternative serialization methods as recommended by .NET team

Modify application code to use JSON, XML, or other serialization formats instead of .NET binary serialization

🧯 If You Can't Patch

  • Implement strict network controls to prevent clients from connecting to untrusted ActiveMQ servers
  • Monitor for suspicious outbound connections from NMS OpenWire clients to unknown servers

🔍 How to Verify

Check if Vulnerable:

Check the version of Apache.NMS.ActiveMQ.dll in your application. Versions before 2.1.1 are vulnerable.

Check Version:

On Windows: [System.Reflection.Assembly]::LoadFile('path\to\Apache.NMS.ActiveMQ.dll').GetName().Version

Verify Fix Applied:

Verify the assembly version is 2.1.1.0 or higher and test connectivity to ensure functionality is maintained.

📡 Detection & Monitoring

Log Indicators:

  • Deserialization errors in application logs
  • Unexpected process creation from NMS client processes

Network Indicators:

  • NMS OpenWire clients connecting to unknown/untrusted servers
  • Unusual outbound traffic patterns from client systems

SIEM Query:

source="application_logs" AND ("deserialization" OR "Apache.NMS") AND (error OR exception)

🔗 References

📤 Share & Export