Sep 25, 2026·6 min read·67 visits
Critical unauthenticated remote code execution vulnerability in Oracle Identity Manager and Oracle Web Services Manager via unsafe Java deserialization, carrying a CVSS score of 9.8.
CVE-2026-21992 is a critical, unauthenticated remote code execution (RCE) vulnerability affecting the REST WebServices component of Oracle Identity Manager (OIM) and the Web Services Security component of Oracle Web Services Manager (OWSM). Exploitation occurs over standard network protocols without user interaction, enabling a complete compromise of target system infrastructure.
Oracle Fusion Middleware contains an unauthenticated remote code execution vulnerability, tracked as CVE-2026-21992, in Oracle Identity Manager (OIM) and Oracle Web Services Manager (OWSM). The vulnerability exists within the REST WebServices component of OIM and the Web Services Security component of OWSM. These interfaces process external messages and security tokens, presenting a highly exposed network-facing attack surface.
The issue arises from how the application handles incoming serialization formats inside HTTP payloads. An attacker can trigger this vulnerability by sending a maliciously crafted payload to the exposed endpoints over the network. Because the vulnerability does not require any credentials, it allows unauthorized network attackers to compromise the system remotely.
Successful exploitation results in the complete compromise of the underlying application environment. Attackers can execute arbitrary operating system commands under the security context of the WebLogic or Fusion Middleware service account. This allows complete access to data, configuration alterations, and disruption of critical identity management operations.
The underlying flaw in CVE-2026-21992 is classified as an unsafe Java deserialization vulnerability (CWE-502). The OIM REST WebServices and OWSM Web Services Security components receive data wrapped in XML, JSON, or SOAP envelopes. If the incoming payload contains embedded Java serialized objects, the application processes these streams before enforcing authentication.
Java serialization allows objects to be encoded as binary streams. During the deserialization phase, the Java Virtual Machine (JVM) reconstructs the object state by executing specialized methods such as readObject(). When the incoming stream is untrusted, the JVM may execute unexpected methods within classes present in the application's classpath, commonly known as gadget chains.
The default implementation of these components failed to restrict which classes could be deserialized. By failing to validate the incoming stream against an explicit class allowlist, the application remained susceptible to object injection. This allowed the execution of arbitrary code paths during object reconstruction, culminating in execution of operating system commands.
To understand the vulnerability, consider the conceptual deserialization logic used to handle input streams inside the affected endpoints. The vulnerable code pattern reads binary objects directly from the input stream without applying safety validation. The simplified code block below demonstrates how the vulnerable deserialization routine is structured compared to the secure, patched version.
// VULNERABLE CODE PATH
// The ObjectInputStream reads the object directly from the request stream
public Object deserializePayload(InputStream incomingStream) throws Exception {
ObjectInputStream ois = new ObjectInputStream(incomingStream);
// ROOT CAUSE: No validation filter applied before reading the object
return ois.readObject();
}The remediation relies on implementing strict object filters using JEP 290 or applying secure serialization frameworks. The patch ensures that an ObjectInputFilter is bound to the input stream before reading objects. This filter rejects any class that does not match an explicit list of approved data types, preventing the instantiation of known gadget classes.
// PATCHED CODE PATH
// A strict JEP 290 filter is applied to intercept malicious class types
public Object deserializePayloadSecure(InputStream incomingStream) throws Exception {
ObjectInputStream ois = new ObjectInputStream(incomingStream);
// FIX: Define a strict filter rejecting common gadget chains and accepting only expected types
ObjectInputFilter filter = ObjectInputFilter.Config.createFilter(
"oracle.identity.*;java.lang.String;!*"
);
ois.setObjectInputFilter(filter);
return ois.readObject();
}This defensive strategy relies heavily on the correct configuration of the global filter rules. If the list is too permissive, attackers may find alternative classes within the vast Oracle WebLogic classpath to construct novel gadget chains. Security administrators must ensure that the JEP 290 filters are updated globally to block these variants.
Exploitation of CVE-2026-21992 requires an attacker to transmit a crafted serialized Java object to a vulnerable REST or SOAP endpoint. The attacker does not need to provide credentials or undergo any phase of authentication. The network position must only allow routing to the ports hosting the OIM or OWSM services, typically ports 7001, 7002, or other WebLogic-managed ports.
An exploit payload is constructed by selecting a suitable gadget chain from the WebLogic application classpath. Common utility libraries or framework-specific classes can be chained together to redirect program execution flow. Once the payload is generated, it is embedded within the HTTP request body or inside SOAP security headers.
Upon receiving the request, the application attempts to parse the payload to resolve the parameters or security tokens. The server instantiates the classes in the payload, executing the malicious command sequences automatically. The execution occurs with the privileges of the system account running the WebLogic application server, which often yields full control of the operating system.
No public proof-of-concept exploits are currently available in the public domain. However, because Java deserialization is a well-understood vulnerability class, reverse-engineering of the patches to identify the target endpoints represents a highly viable threat path. Security teams must assume that active development of custom exploits is possible.
The impact of successful exploitation of CVE-2026-21992 is critical, receiving a CVSS score of 9.8. Because Oracle Identity Manager is the core identity management repository, a compromise grants control over corporate user provisioning. Attackers can create administrative accounts, modify access levels, and extract credentials for connected enterprise systems.
Similarly, compromising Oracle Web Services Manager exposes the entire Web Services architecture. OWSM manages policy enforcement, token validation, and message encryption for SOA environments. Access to this component allows attackers to intercept, decrypt, or forge security tokens, compromising downstream applications.
The availability impact is equally severe as attackers can modify server states or delete configuration files, causing complete operational disruption. The loss of identity services prevents legitimate users and applications from authenticating, bringing enterprise workflows to a complete halt.
The primary remediation path for CVE-2026-21992 is the immediate application of official patches provided by Oracle. Administrators must refer to My Oracle Support Note KB878741 to access the specific patch files for version 12.2.1.4.0 and 14.1.2.1.0. These patches modify the deserialization routine to implement robust validation filters.
If patching cannot be performed immediately, temporary mitigations must be implemented to minimize exposure. The most effective workaround is the configuration of global JEP 290 deserialization filters. Administrators should update the reference blocklist following Oracle Support Note 2591118 to reject untrusted serialization streams across all JVM instances.
Network-level segmentation should also be applied to isolate the management interfaces. Access to OIM and OWSM endpoints should be restricted to trusted networks and administrative hosts. Deploying Web Application Firewall (WAF) rules to detect and drop payloads containing Java serialization magic bytes provides an additional layer of defense.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H| Product | Affected Versions | Fixed Version |
|---|---|---|
Oracle Identity Manager Oracle | 12.2.1.4.0, 14.1.2.1.0 | Refer to KB878741 |
Oracle Web Services Manager Oracle | 12.2.1.4.0, 14.1.2.1.0 | Refer to KB878741 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-502 (Deserialization of Untrusted Data) |
| Attack Vector | Network (AV:N) |
| CVSS v3.1 Base Score | 9.8 |
| EPSS Score | 0.01008 (Percentile: 61.44%) |
| Exploit Status | No public exploit available (none) |
| CISA KEV Status | Not Listed |
| Affected Components | REST WebServices, Web Services Security |
The application deserializes untrusted data without sufficiently verifying that the resulting data will be safe.
CVE-2026-16454 is an object-level authorization bypass vulnerability (CWE-284, CWE-862) in Eclipse hawkBit versions 1.0.3 and prior. The flaw exists within the Direct Device Integration (DDI) REST controller (hawkbit-ddi-resource), where endpoints responsible for enumerating software module metadata and serving firmware binaries fail to verify whether the requested software module is assigned to the authenticated device. Consequently, any device with valid credentials (such as a TargetToken or GatewayToken) can enumerate software module identifiers and download arbitrary firmware artifacts across the entire tenant namespace.
CVE-2026-62284 (GHSA-5w5g-j6hw-6p8f) is a code injection and server-side request forgery vulnerability in the console-proxy component of the OSAC Operator. The RemoteConfigResolver parses Kubernetes Secrets containing kubeconfig files via clientcmd.RESTConfigFromKubeConfig without sanitizing execution-related fields. An attacker with RBAC permissions to create or modify labeled Secrets in monitored namespaces can supply a malicious exec credential plugin, resulting in arbitrary command execution within the console-proxy pod.
CVE-2026-62361 (GHSA-xgjr-7j9q-2h4r) is an authenticated SQL injection and authorization bypass vulnerability in listmonk, an open-source, self-hosted newsletter and mailing list manager written in Go. In versions prior to 6.2.0, the subscriber export endpoint (GET /api/subscribers/export) directly interpolates user-supplied SQL filter expressions into a PostgreSQL query without invoking the table allowlist validation function (validateQueryTables). Consequently, authenticated users possessing the subscribers:sql_query and subscribers:get_all permissions can bypass relational access controls, execute arbitrary subqueries against restricted tables such as users and settings, and modify database state via writable Common Table Expressions (CTEs).
CVE-2026-28385 (GHSA-3gq2-x4qg-p4g6) is a Server-Side Request Forgery (SSRF) vulnerability in Canonical LXD versions 4.12 through 6.9. An authenticated user possessing the can_create_images entitlement can force the LXD daemon to execute arbitrary outbound HTTP and HTTPS requests via the /1.0/images API endpoint. Due to the absence of egress destination validation, an attacker can probe host loopback services, RFC 1918 private network segments, and cloud Instance Metadata Services (IMDS) from the network position of the privileged LXD daemon.
Canonical LXD and LXC Incus contain an arbitrary file write vulnerability (CWE-73 / CWE-59) in the `/1.0/instances/<name>/exec` REST API endpoint. When an instance is unpacked from an image archive, top-level symbolic links are extracted directly onto the host filesystem within the instance storage directory. If a crafted image includes a symbolic link named `exec-output` pointing to an arbitrary host path, invoking the execution endpoint with `record-output: true` causes the privileged host daemon to follow the symlink and write command output files directly to the target host directory. An authenticated attacker with permissions to import images and execute commands can exploit this flaw to write controlled content to sensitive host directories such as `/etc/cron.d`, resulting in arbitrary code execution on the host as `root`.
CVE-2026-48749 (tracked as GHSA-vghh-5rfx-xhq8 for LXD and GHSA-2q3f-q5pq-g8wv for Incus) is a critical container escape vulnerability in the Canonical LXD and Linux Containers Incus system container managers. By importing a specially crafted container image archive containing duplicate tar member headers, an authenticated attacker can replace the instance rootfs directory with a symbolic link pointing to the underlying host root filesystem. When performing file operations on a stopped container, the privileged forkfile helper binary resolves the symbolic link without confinement and chroots directly into the host filesystem, granting arbitrary root-level file read and write access.