Back to Intelligence

CVE-2026-20320: Active Exploitation of Cisco BroadWorks and Openwave Messaging — Detection and Remediation Guide

SA
Security Arsenal Team
November 12, 2026
13 min read

The U.S. Cybersecurity and Infrastructure Security Agency (CISA) added two vulnerabilities to its Known Exploited Vulnerabilities (KEV) catalog on Tuesday, citing confirmed evidence of active in-the-wild exploitation. The affected products are Cisco BroadWorks and Openwave Messaging Webtop Media Transcoder — two platforms that sit squarely in the communications infrastructure stack of service providers, telecom operators, and large enterprises.

The headline flaw, CVE-2026-20320 (CVSS 7.5), is an improper restriction of XML External Entity (XXE) references. If you run BroadWorks or the Openwave Webtop Media Transcoder in your environment — or you're an MSSP responsible for clients who do — this is not a theoretical risk. Threat actors are already exploiting these flaws. Your window for proactive remediation is closing.

This post breaks down the vulnerability mechanics, exploitation status, and — most importantly — the detection and remediation steps your team needs to execute now.


Technical Analysis

Affected Products

ProductComponentRole
Cisco BroadWorksApplication Delivery Platform, Xtended Services PlatformCarrier-grade VoIP / UCaaS application server used by telecom operators and service providers
Openwave MessagingWebtop Media TranscoderWeb-based messaging frontend with media transcoding for email and messaging attachments

CVE-2026-20320 — Improper Restriction of XML External Entity (XXE)

CVSS Score: 7.5 (High)

What it is: The vulnerability stems from insufficient validation and restriction of XML External Entity (XXE) references in XML input processed by the affected platforms. An XXE flaw allows an attacker to craft malicious XML payloads that reference external entities — resources outside the XML document itself.

How it works from a defender's perspective:

  1. Attack Vector: An attacker sends a crafted XML payload to an exposed endpoint on the BroadWorks or Openwave platform. This could be an API call, a SOAP request, a provisioning interface, or any endpoint that parses XML input without proper entity restrictions.
  2. Exploitation Chain:
    • The malicious XML contains a <!DOCTYPE> declaration with an external entity reference pointing to an internal resource (e.g., file:///etc/passwd, file:///proc/self/environ) or an external server controlled by the attacker.
    • The XML parser, lacking proper DOCTYPE / entity restrictions, resolves the external entity and returns the contents in the response (in-band XXE) or exfiltrates data via DNS/HTTP callbacks (out-of-band XXE).
  3. Impact:
    • Sensitive data disclosure: Reading arbitrary files from the server filesystem — configuration files, credentials, private keys, database connection strings.
    • Server-Side Request Forgery (SSRF): Forcing the server to make requests to internal network resources, enabling network reconnaissance or pivoting to internal services.
    • Denial of Service: Billion Laughs / XML bomb attacks that exhaust memory and crash the service.
    • Remote Code Execution (potential): In some configurations, XXE can chain into RCE if the parser supports expect:// or similar dangerous protocols.

Why telecom/UC infrastructure matters: BroadWorks is the backbone of many carrier VoIP and unified communications deployments. Compromise of BroadWorks can expose subscriber data, call detail records, voicemail content, and provide a pivot point into carrier-grade network infrastructure. Openwave Messaging Webtop serves a similar role for webmail and messaging — a compromised transcoder can leak message content and serve as an entry point into messaging infrastructure.

Exploitation Status

  • CISA KEV Listed: Yes — both CVEs were added to the KEV catalog on Tuesday, confirming active exploitation in the wild.
  • Active Exploitation: Confirmed by CISA. Specific threat actor attribution has not been publicly detailed at this time.
  • Patch Status: Patches are available. CISA's KEV listing carries a remediation deadline for Federal Civilian Executive Branch (FCEB) agencies, and we strongly recommend all organizations treat this with the same urgency.

Detection & Response

XXE exploitation generates observable artifacts at multiple layers: web application logs, process behavior, network egress, and filesystem access. The detections below target the specific behaviors associated with exploiting CVE-2026-20320.

SIGMA Rules

YAML
---
title: XXE Exploitation Attempt in Web Server Access Logs
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detects XML External Entity injection attempts in web server access logs targeting Cisco BroadWorks or Openwave Messaging endpoints. Looks for DOCTYPE declarations and ENTITY references in HTTP requests indicative of XXE payloads.
references:
  - https://thehackernews.com/2026/11/cisco-broadworks-and-openwave-flaws.html
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/11/05
tags:
  - attack.initial_access
  - attack.t1190
logsource:
  category: webserver
detection:
  selection_uri:
    cs-uri-query|contains:
      - '<!DOCTYPE'
      - '<!ENTITY'
      - 'SYSTEM'
      - 'file:///'
  selection_body:
    cs-body|contains:
      - '<!DOCTYPE'
      - '<!ENTITY'
      - 'SYSTEM "file:///'
      - 'SYSTEM "http://'
      - 'SYSTEM "https://'
  condition: selection_uri or selection_body
falsepositives:
  - Legitimate XML API integrations that use DOCTYPE declarations (rare in modern implementations)
  - XML schema validation tools
level: high
---
title: Suspicious File Read via Web Application Process
id: b2c3d4e5-f6a7-8901-bcde-f12345678901
status: experimental
description: Detects web application processes (Java, Tomcat, or similar) reading sensitive system files that are commonly targeted in XXE exploitation for data exfiltration from Linux-based Cisco BroadWorks or Openwave servers.
references:
  - https://thehackernews.com/2026/11/cisco-broadworks-and-openwave-flaws.html
  - https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/11/05
tags:
  - attack.collection
  - attack.t1005
logsource:
  category: file_event
  product: linux
detection:
  selection_process:
    ProcessName|contains:
      - 'java'
      - 'tomcat'
      - 'catalina'
      - 'httpd'
      - 'nginx'
      - 'transcoder'
  selection_files:
    TargetFilename|contains:
      - '/etc/passwd'
      - '/etc/shadow'
      - '/proc/self/environ'
      - '/etc/hosts'
      - '.ssh/authorized_keys'
      - '.ssh/id_rsa'
      - 'server.xml'
      - 'context.xml'
      - 'web.xml'
      - 'catalina.properties'
      - 'database.properties'
  condition: selection_process and selection_files
falsepositives:
  - Legitimate application configuration reads during startup (baseline and filter by process start time)
  - System administration activities
level: high
---
title: Out-of-Band XXE Data Exfiltration via DNS or HTTP
id: c3d4e5f6-a7b8-9012-cdef-123456789012
status: experimental
description: Detects unusual outbound DNS queries or HTTP connections from web application server processes that may indicate out-of-band XXE data exfiltration from Cisco BroadWorks or Openwave servers.
references:
  - https://thehackernews.com/2026/11/cisco-broadworks-and-openwave-flaws.html
  - https://attack.mitre.org/techniques/T1048/
author: Security Arsenal
date: 2026/11/05
tags:
  - attack.exfiltration
  - attack.t1048
  - attack.t1071
logsource:
  category: network_connection
  product: linux
detection:
  selection_process:
    Image|contains:
      - 'java'
      - 'tomcat'
      - 'catalina'
      - 'httpd'
      - 'nginx'
      - 'transcoder'
  selection_outbound:
    DestinationPort:
      - 53
      - 80
      - 443
      - 8080
      - 8443
  filter_known_destinations:
    DestinationIp|startswith:
      - '10.'
      - '172.16.'
      - '192.168.'
      - '127.'
  condition: selection_process and selection_outbound and not filter_known_destinations
falsepositives:
  - Legitimate software update mechanisms
  - API integrations and license validation callbacks
  - SIP trunk connectivity for BroadWorks (baseline known SIP provider IPs)
level: medium

KQL — Microsoft Sentinel / Defender

These queries assume you're ingesting web server logs (via Syslog/CEF or custom log ingestion) and network telemetry into Sentinel. For environments running BroadWorks or Openwave behind a reverse proxy or WAF, adapt the CommonSecurityLog queries to match your device vendor fields.

KQL — Microsoft Sentinel / Defender
// Hunt for XXE payload patterns in web requests to BroadWorks/Openwave endpoints
// Ingest via Syslog, CEF, or custom log table
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where RequestURL contains "broadworks" or RequestURL contains "webtop" or RequestURL contains "transcoder" or RequestURL contains "media"
| where RequestURL contains "DOCTYPE" or RequestURL contains "ENTITY" or RequestURL contains "file:///"
    or (AdditionalExtensions has_any ("DOCTYPE", "ENTITY", "file:///"))
| project TimeGenerated, SourceIP, DestinationIP, RequestURL, RequestMethod, 
    DeviceProduct, AdditionalExtensions
| sort by TimeGenerated desc

// Hunt for outbound connections from web server processes to uncommon external destinations
// Useful for detecting out-of-band XXE exfiltration
Syslog
| where TimeGenerated > ago(7d)
| where ProcessName has_any ("java", "tomcat", "catalina", "httpd", "nginx", "transcoder")
| where SyslogMessage has_any ("connect", "outbound", "dns", "resolve")
| extend DestIP = extract(@"dest=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})", 1, SyslogMessage)
| where isnotempty(DestIP)
| where not(DestIP startswith "10." or DestIP startswith "172.16." or DestIP startswith "192.168.")
| summarize ConnectionCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated) 
    by DestIP, ProcessName, Computer
| sort by ConnectionCount desc

// Hunt for suspicious file access patterns by web application processes
// Ingested via Syslog with auditd or similar
Syslog
| where TimeGenerated > ago(7d)
| where SyslogMessage has_any ("/etc/passwd", "/etc/shadow", "/proc/self/environ", "id_rsa", "server.xml", "catalina.properties")
| where SyslogMessage has_any ("java", "tomcat", "catalina", "httpd", "nginx", "transcoder", "open")
| project TimeGenerated, Computer, ProcessName, SyslogMessage, SeverityLevel
| sort by TimeGenerated desc

// Correlate: HTTP requests with XML content-type to BroadWorks/Openwave from unusual sources
CommonSecurityLog
| where TimeGenerated > ago(24h)
| where RequestURL has_any ("broadworks", "webtop", "transcoder")
| where RequestMethod == "POST"
| summarize RequestCount = count(), UniqueSourceIPs = dcount(SourceIP) by RequestURL, bin(TimeGenerated, 1h)
| where RequestCount > 100  // Adjust threshold based on your baseline
| sort by RequestCount desc

Velociraptor VQL

Use this hunt artifact to identify BroadWorks or Openwave server processes making unexpected outbound network connections or accessing sensitive files — both indicators of active XXE exploitation.

VQL — Velociraptor
-- Hunt for web application processes with suspicious file access or network connections
-- relevant to XXE exploitation of Cisco BroadWorks / Openwave Messaging

SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)(java|tomcat|catalina|httpd|nginx|transcoder)'
   OR CommandLine =~ '(?i)(broadworks|openwave|webtop|transcoder)'

// Check network connections from those processes
SELECT Pid, Name, Status, SrcAddr, SrcPort, DstAddr, DstPort
FROM netstat()
WHERE Name =~ '(?i)(java|tomcat|catalina|httpd|nginx|transcoder)'
  AND Status =~ 'ESTABLISHED'
  AND NOT DstAddr =~ '^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|127\.)'

// Check for recently modified config files that could indicate post-exploitation tampering
SELECT FullPath, Size, Mtime, Atime
FROM glob(globs='/opt/broadworks/**/*.xml')
WHERE Mtime > now() - 604800

SELECT FullPath, Size, Mtime, Atime  
FROM glob(globs='/etc/tomcat*/**/*.xml')
WHERE Mtime > now() - 604800

SELECT FullPath, Size, Mtime, Atime
FROM glob(globs='/opt/openwave/**/*.properties')
WHERE Mtime > now() - 604800

Remediation Verification Script

Run this Bash script on your BroadWorks and Openwave servers to check for signs of XXE exploitation attempts in web server logs and verify XML parser hardening configurations.

Bash / Shell
#!/bin/bash
# CVE-2026-20320 — XXE Exploitation Detection and Verification Script
# For Cisco BroadWorks and Openwave Messaging servers
# Run as root or with sudo

echo "=============================================="
echo " CVE-2026-20320 XXE Exploitation Check"
echo " Date: $(date)"
echo " Host: $(hostname)"
echo "=============================================="

echo ""
echo "[*] Checking web server access logs for XXE payload patterns..."
echo ""

# Check common log locations for XXE indicators
LOG_PATHS=(
    "/var/log/httpd/access_log"
    "/var/log/httpd/access_log.1"
    "/var/log/nginx/access.log"
    "/var/log/nginx/access.log.1"
    "/var/log/tomcat*/localhost_access_log*.txt"
    "/opt/broadworks/logs/*.log"
    "/opt/openwave/logs/*.log"
)

XXE_PATTERNS=(
    "DOCTYPE"
    "ENTITY"
    "file:///"
    "SYSTEM.*http"
    "SYSTEM.*file"
)

FOUND=0
for logpath in "${LOG_PATHS[@]}"; do
    for log in $logpath; do
        if [ -f "$log" ]; then
            for pattern in "${XXE_PATTERNS[@]}"; do
                MATCHES=$(grep -ci "$pattern" "$log" 2>/dev/null)
                if [ "$MATCHES" -gt 0 ] 2>/dev/null; then
                    echo "[ALERT] Found $MATCHES matches for '$pattern' in $log"
                    grep -i "$pattern" "$log" | tail -5
                    echo "---"
                    FOUND=1
                fi
            done
        fi
    done
done

if [ "$FOUND" -eq 0 ]; then
    echo "[OK] No XXE payload patterns found in checked log files."
fi

echo ""
echo "[*] Checking for unusual outbound connections from web server processes..."

# Check for outbound connections from Java/Tomcat/httpd to external IPs
ss -tnp 2>/dev/null | grep -E '(java|tomcat|catalina|httpd|nginx|transcoder)' | while read line; do
    DEST_IP=$(echo "$line" | awk '{print $5}' | cut -d: -f1)
    if [[ ! "$DEST_IP" =~ ^10\. ]] && [[ ! "$DEST_IP" =~ ^172\.(1[6-9]|2[0-9]|3[01])\. ]] && [[ ! "$DEST_IP" =~ ^192\.168\. ]] && [[ ! "$DEST_IP" =~ ^127\. ]]; then
        echo "[ALERT] Suspicious outbound connection: $line"
    fi
done

echo ""
echo "[*] Checking XML parser configuration for XXE hardening..."

# Check Tomcat/JVM for XXE-disabling system properties
if command -v jps &> /dev/null; then
    JAVA_PROCS=$(jps -l | grep -iE '(catalina|tomcat|broadworks|openwave)')
    if [ -n "$JAVA_PROCS" ]; then
        echo "[*] Found Java processes:"
        echo "$JAVA_PROCS"
        # Check if secure processing is enabled
        for PID in $(echo "$JAVA_PROCS" | awk '{print $1}'); do
            if jcmd "$PID" VM.system_properties 2>/dev/null | grep -q "secure-processing"; then
                echo "[OK] PID $PID: XML secure processing property found"
            else
                echo "[WARN] PID $PID: XML secure processing property NOT confirmed"
            fi
        done
    fi
fi

# Check for DOCTYPE-disabling configuration in common locations
echo ""
echo "[*] Checking application XML configurations for XXE protections..."
find /opt /etc/tomcat* /usr/share/tomcat* -name "*.xml" -newer /tmp -mtime -30 2>/dev/null | head -20

echo ""
echo "[*] Checking for recently modified web application files (last 7 days)..."
find /opt/broadworks /opt/openwave /var/www /usr/share/tomcat*/webapps -name "*.jsp" -o -name "*.war" -o -name "*.xml" -mtime -7 2>/dev/null | head -20

echo ""
echo "=============================================="
echo " Check complete. Review any [ALERT] entries."
echo " If alerts found, escalate to IR immediately."
echo "=============================================="

Remediation

Immediate Actions (Within 24 Hours)

  1. Apply vendor patches immediately. Cisco and Openwave have released patches for these vulnerabilities. Contact Cisco TAC and Openwave support for the specific fixed release versions applicable to your deployment. Do not wait for your next maintenance window — CISA KEV listing means active exploitation is underway.

  2. Verify CISA KEV deadline compliance. Check the CISA KEV Catalog for the specific remediation due date assigned to CVE-2026-20320. If you are a Federal Civilian Executive Branch agency, this deadline is binding. All other organizations should treat it as best practice.

  3. Restrict network exposure. If patching cannot be completed immediately:

    • Place BroadWorks and Openwave management/provisioning interfaces behind a VPN or jump host — these should never be directly internet-facing.
    • Implement strict IP allowlisting on all XML-processing endpoints.
    • Block outbound traffic from these servers to untrusted external destinations at the firewall level (egress filtering). This mitigates out-of-band XXE exfiltration even if the vulnerability is exploited.

XML Parser Hardening (If Patch Application Is Delayed)

  1. Disable external entity resolution at the XML parser level. For Java-based applications (which BroadWorks and many Openwave components are), ensure the following JVM-level or application-level configurations are in place:

    • Set javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING to true
    • Disable DOCTYPE declarations entirely: set disallow-doctype-decl to true on the DocumentBuilderFactory
    • Disable external general entities: external-general-entities → false
    • Disable external parameter entities: external-parameter-entities → false
    • Disable external DTD loading: load-external-dtd → false
  2. Implement WAF rules to inspect and block requests containing <!DOCTYPE, <!ENTITY, and SYSTEM references in request bodies targeting your BroadWorks and Openwave endpoints.

Post-Remediation

  1. Hunt for indicators of prior compromise. Applying the patch does not remove an attacker who has already established access. Use the Sigma rules, KQL queries, and VQL artifacts provided above to hunt for evidence of exploitation that occurred before patching. Pay particular attention to:

    • Web server logs for the past 90 days
    • Outbound connections from application server processes
    • New or modified files in web application directories
    • New user accounts or SSH keys on the servers
  2. Rotate credentials that may have been exposed via XXE file reads — database passwords, API keys, service account credentials, TLS private keys, and any credentials stored in configuration files accessible to the web application process.

  3. Review your architecture. If your BroadWorks or Openwave deployment processes XML from untrusted sources, evaluate whether additional input validation layers (API gateway, reverse proxy with XML schema validation) can reduce attack surface going forward.

Vendor Resources


Key Takeaways

  • CVE-2026-20320 is a CVSS 7.5 XXE vulnerability actively exploited against Cisco BroadWorks and Openwave Messaging Webtop Media Transcoder. CISA KEV listing confirms in-the-wild exploitation.
  • XXE in telecom/UC infrastructure is high-impact. These platforms handle subscriber data, call records, voicemail, and messaging content. Compromise exposes sensitive communications and provides a pivot into carrier networks.
  • Patch immediately. Do not wait for a maintenance window. If you cannot patch, implement XML parser hardening, egress filtering, and network segmentation as interim compensating controls.
  • Patching is not enough. Hunt for evidence of prior exploitation using the detection content above. XXE exploitation often precedes deeper compromise — credential theft, lateral movement, and persistence.
  • Egress filtering is your safety net. Even if an XXE vulnerability is exploited, blocking outbound connections from application servers to untrusted destinations can neutralize out-of-band data exfiltration.

Related Resources

Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.