CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-20230

CVE-2026-20230: Server-Side Request Forgery in Cisco Unified Communications Manager WebDialer Service

Alon Barad
Alon Barad
Software Engineer

Jun 4, 2026·6 min read·8 visits

Executive Summary (TL;DR)

Improper input validation in the WebDialer service of Cisco Unified CM enables unauthenticated remote attackers to execute a Server-Side Request Forgery (SSRF). This vulnerability allows attackers to query internal loopback APIs, write malicious files to the filesystem, and escalate privileges to root.

CVE-2026-20230 is a critical Server-Side Request Forgery (SSRF) vulnerability in the WebDialer service of Cisco Unified Communications Manager (Unified CM) and Cisco Unified Communications Manager Session Management Edition (Unified CM SME). The flaw arises from improper validation of input parameters within WebDialer HTTP requests. Unauthenticated remote attackers can exploit this vulnerability to force the application to make HTTP requests to internal administrative services bound to the loopback interface. In the Cisco Voice Operating System (VOS) environment, these local services trust loopback traffic inherently, permitting unauthorized file writes. By writing malicious files to specific system directories, the attacker can execute arbitrary commands with root privileges.

Vulnerability Overview

Cisco Unified Communications Manager (Unified CM) and Session Management Edition (Unified CM SME) are enterprise-class call control and session management platforms. Within these platforms, the Cisco WebDialer service enables users to initiate phone calls directly from web-based applications and directories. WebDialer is hosted as a Java-based application within the Apache Tomcat servlet container on the underlying Cisco Voice Operating System (VOS) platform.

To fulfill request redirection and integration with directory nodes, WebDialer must communicate across clusters. This functionality exposes web-facing servlet endpoints designed to process redirect URLs and target hosts. The vulnerability lies within these public-facing endpoints, which do not correctly validate or sanitize user-supplied server addresses.

An unauthenticated, network-based attacker can submit a crafted HTTP request containing malicious host destinations. Because the WebDialer service acts as a proxy for these requests, the vulnerability allows the attacker to route traffic to restricted network locations. This mechanism shifts the execution context from the public network space to the internal system architecture.

Root Cause Analysis

The fundamental flaw in CVE-2026-20230 is input validation failure (CWE-20) within the request-handling methods of the WebDialer servlet. Specifically, parameter values intended to specify redirect targets or directory servers are consumed by the backend application logic and utilized directly to establish outbound HTTP connections. The application fails to restrict these parameters to an authorized allowlist of external hosts or domains.

Furthermore, the input validation routine does not block loopback IP addresses (such as 127.0.0.1 and localhost) or private IP ranges. This allows an attacker to construct a request targeting internal administrative services running on the loopback interface of the Cisco server. These local microservices handle tasks such as diagnostic logging, configuration synchronization, and file management.

Within the Cisco Unified Communications platform, services binding strictly to 127.0.0.1 are designed with the assumption that only local, authenticated system components can access them. Consequently, these internal APIs do not enforce secondary authentication tokens or session validation. When the WebDialer service receives an SSRF payload pointing to 127.0.0.1, it connects to these local services under its own service account privileges, which inherently trusted.

Code Flow and Remediation Analysis

The vulnerability is located in the Java servlet responsible for processing user-initiated dialing and redirection requests. When a request is parsed, the application retrieves a destination parameter and constructs a java.net.URL object without validation.

Below is a conceptual representation of the vulnerable code path compared to the mitigated code structure implementing strict validation:

// VULNERABLE CODE PATH
public void doGet(HttpServletRequest request, HttpServletResponse response) {
    String targetUrl = request.getParameter("destination");
    // Vulnerability: The user-provided URL is used directly without validation
    HttpURLConnection conn = (HttpURLConnection) new URL(targetUrl).openConnection();
    conn.setRequestMethod("GET");
    InputStream responseStream = conn.getInputStream();
}

To fix this vulnerability, the system software updates implement an input filtering check. This check sanitizes target destination strings, resolves domains, and blocks requests routing to reserved or loopback IP spaces.

// PATCHED CODE PATH
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
    String targetUrl = request.getParameter("destination");
    URL url = new URL(targetUrl);
    String host = url.getHost();
    
    // Resolve and validate IP address
    InetAddress address = InetAddress.getByName(host);
    if (address.isLoopbackAddress() || address.isSiteLocalAddress() || address.isAnyLocalAddress()) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN, "Invalid destination");
        return;
    }
    
    // Verify against domain allowlist
    if (!isDomainAllowed(host)) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN, "Destination host not authorized");
        return;
    }
    
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    // Continue processing secure connection...
}

Exploitation and Privilege Escalation

To exploit this vulnerability, the attacker must have network access to the WebDialer service port, which is typically standard HTTPS (443). Additionally, the WebDialer service must be active. Although WebDialer is disabled by default, many enterprise environments enable it to support call control integrations with third-party software.

The attack begins by identifying vulnerable endpoints in the /webdialer/ application directory. The attacker transmits a crafted HTTP GET or POST request containing a URL pointing to a localized service port on the loopback adapter. This endpoint acts as a pivot to interact with administrative APIs.

Once connected to the local administrative API via SSRF, the attacker can leverage functions designed for system file writing. By passing payload parameters to these internal endpoints, the attacker writes configurations to the underlying system directory, such as /etc/cron.d/. Once written, the system's cron daemon executes the newly registered task automatically under root permissions, establishing a persistent root command execution channel.

Impact Assessment

Although the standard CVSS calculation results in a score of 8.6, Cisco raised the Security Impact Rating (SIR) to Critical. The mathematical score is limited by standard vector assumptions, which evaluate the initial impact in isolation. In reality, the file-write capability facilitated by this SSRF leads to complete system compromise.

A successful exploit enables the execution of commands as the administrative root user of the appliance. This allows attackers to bypass all application security controls, read or modify underlying SQL databases, and access sensitive customer call logs and directory configuration profiles.

Furthermore, compromise of the Unified CM server compromises the integrity of the telephony infrastructure. Attackers can leverage root access on the primary communications host to conduct active wiretapping, alter call routing configurations, or pivot to other network segments.

Detection and Remediation

Organizations should verify whether the WebDialer service is active within their environment. The status can be verified by navigating to the Cisco Unified Serviceability interface, choosing Service Activation under Tools, and confirming the operational state of Cisco WebDialer.

When immediate patching is not possible, the only effective workaround is to disable the WebDialer service entirely. Administrators can accomplish this in the Service Activation screen by unchecking the service and saving the configuration changes. Additionally, network administrators should restrict access to TCP ports 80 and 443 on affected nodes to authorized administrative hosts.

To identify potential exploitation attempts, security operations teams should analyze Tomcat access logs. Search for HTTP parameters within /webdialer/ paths containing instances of the loopback IP (127.0.0.1), hostnames resolving to localhost, or arbitrary non-standard port numbers. System log exports should also be checked for unauthorized modifications inside configuration directories.

Technical Appendix

CVSS Score
8.6/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N

Affected Systems

Cisco Unified Communications Manager (Unified CM)Cisco Unified Communications Manager Session Management Edition (Unified CM SME)

Affected Versions Detail

Product
Affected Versions
Fixed Version
Cisco Unified Communications Manager
Cisco Systems, Inc.
All versions where WebDialer is active and unpatchedRefer to cisco-sa-cucm-ssrf-cXPnHcW
Cisco Unified Communications Manager SME
Cisco Systems, Inc.
All versions where WebDialer is active and unpatchedRefer to cisco-sa-cucm-ssrf-cXPnHcW
AttributeDetail
Vulnerability IDCVE-2026-20230
CWE IDCWE-918
Attack VectorNetwork (AV:N)
CVSS v3.1 Score8.6 (Critical Severity Impact Rating)
Exploit StatusNone (No public exploit code or active exploitation detected)
CISA KEV StatusNo

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-918
Server-Side Request Forgery (SSRF)

The web application receives a user-supplied destination address and makes a backend request to it without proper validation, facilitating access to internal-only endpoints.

References & Sources

  • [1]Cisco Unified Communications Manager SSRF Security Advisory
  • [2]CVE-2026-20230 on CVE.org

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-48710
7.0

CVE-2026-48710: Starlette BadHost HTTP Host-Header Path-Poisoning and Authentication Bypass

CVE-2026-48710 is a critical security-desynchronization vulnerability in the Starlette ASGI framework (versions >= 0.8.3, < 1.0.1) that allows remote attackers to bypass path-based security middleware and access-control decorators. By injecting URI authority-to-path delimiters into the Host header, attackers can manipulate the application-level parsed URL path while the underlying ASGI server dispatches the request to target endpoints.

Amit Schendel
Amit Schendel
7 views•7 min read
•about 7 hours ago•CVE-2026-48526
7.4

CVE-2026-48526: Algorithm Confusion Vulnerability in PyJWT

CVE-2026-48526 is an algorithm-confusion vulnerability in PyJWT prior to version 2.13.0. When an application decodes tokens using a raw JSON Web Key (JWK) string while simultaneously supporting mixed algorithm families (symmetric and asymmetric), PyJWT does not validate that the key matches its intended algorithm context. This allows an attacker to sign a forged token using the public JWK string as an HMAC symmetric secret, bypassing authentication controls.

Alon Barad
Alon Barad
5 views•7 min read
•about 8 hours ago•CVE-2026-23479
8.8

CVE-2026-23479: Use-After-Free Vulnerability in Redis Blocking-Client Command Re-Execution

CVE-2026-23479 is a critical Use-After-Free (UAF) vulnerability inside the blocking-client code path of the Redis in-memory data structure server. In affected versions from 7.2.0 until 8.6.3, the unblock client flow fails to handle an error return from processCommandAndResetClient when re-executing a previously blocked command. If a blocked client is evicted due to maxmemory limits or client eviction policies during this command processing flow, its client structure is freed. Because the caller ignores the error return and continues processing, it attempts to read and write properties on the freed client structure, leading to a Use-After-Free condition.

Alon Barad
Alon Barad
13 views•7 min read
•about 14 hours ago•CVE-2026-42211
8.1

CVE-2026-42211: Remote Code Execution via Insecure Deserialization in React Router Framework Mode

A critical vulnerability exists in React Router v7 when running in Framework Mode. The vulnerability arises from insecure deserialization of TYPE_ERROR objects in the internal turbo-stream library, which resolves constructors from the global scope. If an application contains an independent prototype pollution vulnerability, an attacker can trigger unauthenticated Remote Code Execution (RCE) on the server.

Alon Barad
Alon Barad
9 views•5 min read
•about 15 hours ago•CVE-2026-47265
6.6

CVE-2026-47265: Cross-Origin Cookie Leakage in AIOHTTP Client Redirects

AIOHTTP prior to version 3.14.0 fails to clear request-specific cookies when executing cross-origin automatic HTTP redirects. This vulnerability allows remote web servers to harvest sensitive credentials and session cookies originally scoped to an authorized target domain.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 16 hours ago•CVE-2026-49144
7.1

CVE-2026-49144: Unauthenticated Arbitrary File Read via Path Traversal in BrowserStack Runner

An unauthenticated path traversal vulnerability in BrowserStack Runner versions up to and including 0.9.5 allows remote or adjacent network attackers to read arbitrary files from the host system. The flaw exists within the local HTTP test server's fallback and patch file handlers, which fail to sanitize path inputs before passing them to file resolution APIs.

Amit Schendel
Amit Schendel
7 views•7 min read