CVE-2025-20276 - Deserialization of Untrusted Data

Severity

72%

Complexity

12%

Confidentiality

98%

A vulnerability in the web-based management interface of Cisco Unified CCX could allow an authenticated, remote attacker to execute arbitrary code on an affected device. To exploit this vulnerability, the attacker must have valid administrative credentials.  This vulnerability is due to insecure deserialization of Java objects by the affected software. An attacker could exploit this vulnerability by sending a crafted Java object to an affected device. A successful exploit could allow the attacker to execute arbitrary code on the underlying operating system of an affected device as a low-privilege user. A successful exploit could also allow the attacker to undertake further actions to elevate their privileges to root.

CVSS 3.1 Base Score 7.2. CVSS Attack Vector: network. CVSS Attack Complexity: low. CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H).

Demo Examples

Deserialization of Untrusted Data

CWE-502

This code snippet deserializes an object from a file and uses it as a UI button:


               
}
in.close();

This code does not attempt to verify the source or contents of the file before deserializing it. An attacker may be able to replace the intended file with a file that contains arbitrary malicious code which will be executed when the button is pressed.

To mitigate this, explicitly define final readObject() to prevent deserialization. An example of this is:


               
throw new java.io.IOException("Cannot be deserialized"); }

Deserialization of Untrusted Data

CWE-502

In Python, the Pickle library handles the serialization and deserialization processes. In this example derived from [R.502.7], the code receives and parses data, and afterwards tries to authenticate a user based on validating a token.


               
}
raise AuthFail

Unfortunately, the code does not verify that the incoming data is legitimate. An attacker can construct a illegitimate, serialized object "AuthToken" that instantiates one of Python's subprocesses to execute arbitrary commands. For instance,the attacker could construct a pickle that leverages Python's subprocess module, which spawns new processes and includes a number of arguments for various uses. Since Pickle allows objects to define the process for how they should be unpickled, the attacker can direct the unpickle process to call Popen in the subprocess module and execute /bin/sh.

Overview

Type

Cisco Unified Contact Center Express

First reported 1 month ago

2025-06-04 17:15:00

Last updated 4 days ago

2025-07-22 13:40:00

Affected Software

Cisco Unified Contact Center Express 10.5(1)

10.5\(1\)

Cisco Unified Contact Center Express 10.6(1)

10.6\(1\)

Cisco Unified Contact Center Express 12.5(1)

12.5\(1\)

Cisco Unified Contact Center Express 12.0(1)

12.0\(1\)

Cisco Unified Contact Center Express 11.6(1)

11.6\(1\)

Cisco Unified Contact Center Express 11.6(2)

11.6\(2\)

Cisco Unified Contact Center Express 11.6(2)es04

11.6\(2\)es04

Cisco Unified Contact Center Express (CCX) 12.0(1)ES03

12.0\(1\)es03

Stay updated

ExploitPedia is constantly evolving. Sign up to receive a notification when we release additional functionality.

Get in touch

If you'd like to report a bug or have any suggestions for improvements then please do get in touch with us using this form. We will get back to you as soon as we can.