CVE-2014-3579

9.8 CRITICAL

📋 TL;DR

This XXE vulnerability in Apache ActiveMQ Apollo allows remote message consumers to potentially read arbitrary files, perform server-side request forgery, or cause denial of service by sending specially crafted XML messages with XPath selectors. It affects all ActiveMQ Apollo 1.x installations before version 1.7.1 that process XML messages. The high CVSS score reflects the potential for complete system compromise.

💻 Affected Systems

Products:
  • Apache ActiveMQ Apollo
Versions: 1.x before 1.7.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability requires XML message processing with XPath selectors. All default configurations that process XML messages are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote unauthenticated attacker achieves remote code execution, reads sensitive files (including configuration files with credentials), performs SSRF attacks, or causes complete system compromise.

🟠

Likely Case

Attackers read arbitrary files from the server, potentially obtaining configuration files, credentials, or other sensitive data. SSRF attacks to internal services are also probable.

🟢

If Mitigated

With proper network segmentation and XML parsing restrictions, impact limited to denial of service or limited file disclosure.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

XXE vulnerabilities are well-understood with many public exploit examples. The specific XPath selector vector makes exploitation straightforward for attackers familiar with XXE.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.7.1

Vendor Advisory: http://activemq.apache.org/security-advisories.data/CVE-2014-3579-announcement.txt

Restart Required: Yes

Instructions:

1. Download ActiveMQ Apollo 1.7.1 or later from Apache website. 2. Stop the ActiveMQ Apollo service. 3. Backup configuration files. 4. Install the new version. 5. Restore configuration if needed. 6. Start the service.

🔧 Temporary Workarounds

Disable external entity processing

all

Configure XML parser to disable external entity resolution

Set XML parser properties: FEATURE_SECURE_PROCESSING=true, disallow-doctype-decl=true

Input validation filter

all

Implement filter to reject XML messages containing DOCTYPE declarations or external entity references

🧯 If You Can't Patch

  • Implement network segmentation to restrict access to ActiveMQ Apollo instances
  • Deploy web application firewall with XXE protection rules

🔍 How to Verify

Check if Vulnerable:

Check ActiveMQ Apollo version: if version is 1.x and less than 1.7.1, system is vulnerable. Also check if XML message processing is enabled.

Check Version:

Check Apollo version in logs or via management interface. For Linux: grep -i version /path/to/apollo/logs/*.log

Verify Fix Applied:

Verify version is 1.7.1 or later. Test with XXE payloads to confirm they are rejected.

📡 Detection & Monitoring

Log Indicators:

  • XML parsing errors
  • DOCTYPE declarations in message logs
  • External entity resolution attempts
  • Unusual file access patterns

Network Indicators:

  • XML messages containing DOCTYPE or SYSTEM entities
  • Outbound connections from ActiveMQ to unexpected destinations

SIEM Query:

source="activemq" AND (message="*DOCTYPE*" OR message="*ENTITY*" OR message="*SYSTEM*")

🔗 References

📤 Share & Export