Skip to main content
Vulnerability Database/CVE-2026-11729

CVE-2026-11729: IBM MQ RCE Vulnerability via JNDI Injection

CVE-2026-11729 is a remote code execution vulnerability in IBM MQ that enables authenticated attackers to execute arbitrary code through unsafe deserialization and JNDI injection attacks. This article covers technical details, affected versions from 9.1 through 10.0, security impact, and mitigation strategies.

Published:

CVE-2026-11729 Overview

IBM MQ contains an unsafe deserialization flaw that enables Java Naming and Directory Interface (JNDI) injection attacks against client applications. An authenticated attacker can leverage this weakness to execute arbitrary code within the context of the MQ client. The issue is tracked under CWE-502: Deserialization of Untrusted Data and affects multiple Long Term Support (LTS) and Continuous Delivery (CD) release trains of IBM MQ, including version 10.0.0.0.

Critical Impact

Authenticated attackers can achieve arbitrary code execution in IBM MQ client applications by triggering unsafe Java object deserialization that resolves to attacker-controlled JNDI resources.

Affected Products

  • IBM MQ 9.1.0.0 through 9.1.0.37 LTS
  • IBM MQ 9.2.0.0 through 9.2.0.43 LTS, and 9.3.0.0 through 9.3.0.41 LTS
  • IBM MQ 9.3.0.0 through 9.3.5.1 CD, 9.4.0.0 through 9.4.0.25 LTS, 9.4.0.0 through 9.4.5.1 CD, and 10.0.0.0

Discovery Timeline

  • 2026-09-15 - CVE-2026-11729 published to the National Vulnerability Database (NVD)
  • 2026-09-16 - Last updated in NVD database

Technical Details for CVE-2026-11729

Vulnerability Analysis

The vulnerability resides in how IBM MQ client code handles Java object deserialization on messages or attributes received from the broker. When the client processes untrusted serialized data, it can be coerced into performing a JNDI lookup against an attacker-controlled endpoint. The lookup returns a malicious object reference that the Java runtime instantiates, resulting in arbitrary code execution within the client process.

Exploitation requires network access to the MQ infrastructure and valid authentication credentials. The attack traverses trust boundaries because the compromised code path executes inside the connecting client rather than the broker, allowing lateral movement into application hosts that consume MQ messages. Successful exploitation compromises confidentiality, integrity, and availability of the affected client.

Root Cause

The root cause is insecure deserialization of untrusted data [CWE-502] in the IBM MQ client library. The client accepts serialized Java objects without adequate class allowlisting or JNDI resolver hardening. This design flaw permits gadget chains that invoke javax.naming.InitialContext.lookup() with attacker-supplied Uniform Resource Identifiers (URIs) such as ldap:// or rmi://.

Attack Vector

An authenticated attacker with the ability to publish or route messages to an MQ queue or topic that a vulnerable client consumes can embed a crafted serialized payload. When the client deserializes the payload, it initiates a JNDI lookup to a remote directory server controlled by the attacker. The remote server returns a reference that loads a malicious factory class, yielding code execution in the client Java Virtual Machine (JVM).

No verified public exploit code is available for CVE-2026-11729. Refer to the IBM Support Document for vendor-provided technical details.

Detection Methods for CVE-2026-11729

Indicators of Compromise

  • Outbound ldap://, ldaps://, rmi://, or iiop:// connections originating from Java processes hosting IBM MQ client libraries.
  • Unexpected child processes spawned by MQ client JVMs, particularly command interpreters or scripting engines.
  • MQ client log entries referencing javax.naming.InitialContext lookups tied to message consumption events.

Detection Strategies

  • Inspect message payloads flowing through MQ queues for serialized Java object markers (aced 0005 header bytes) that are not expected in application traffic.
  • Correlate authenticated MQ session activity with anomalous outbound network flows from client hosts to non-corporate LDAP or RMI endpoints.
  • Enable Java Security Manager or deserialization filter (jdk.serialFilter) audit logs to flag rejected or suspicious class resolution attempts.

Monitoring Recommendations

  • Monitor authentication logs on MQ queue managers for accounts producing messages to queues consumed by high-value clients.
  • Alert on JVM processes loading remote classes via URLClassLoader after processing MQ traffic.
  • Track egress traffic from application servers to detect JNDI callback patterns consistent with post-deserialization exploitation.

How to Mitigate CVE-2026-11729

Immediate Actions Required

  • Inventory all IBM MQ client deployments and identify versions matching the affected ranges through 9.4.5.1 CD, 9.4.0.25 LTS, and 10.0.0.0.
  • Apply the fixes referenced in the IBM Support Document as soon as validated in a test environment.
  • Rotate credentials used by MQ producers if compromise is suspected, and review queue authorizations to limit which principals can publish to sensitive queues.

Patch Information

IBM has published remediation guidance in the IBM Support Document. Administrators should upgrade IBM MQ client libraries to the fixed versions listed by IBM for each affected LTS and CD release train, including 9.1, 9.2, 9.3, 9.4, and 10.0.

Workarounds

  • Configure a JVM-wide deserialization allowlist using jdk.serialFilter to reject arbitrary classes during MQ client message processing.
  • Set com.sun.jndi.ldap.object.trustURLCodebase and com.sun.jndi.rmi.object.trustURLCodebase to false to block remote codebase loading via JNDI.
  • Restrict egress network access from MQ client hosts so that LDAP, RMI, and IIOP connections to untrusted destinations are denied at the perimeter.
bash
# Configuration example: harden Java clients against JNDI injection
java \
  -Dcom.sun.jndi.ldap.object.trustURLCodebase=false \
  -Dcom.sun.jndi.rmi.object.trustURLCodebase=false \
  -Dcom.sun.jndi.cosnaming.object.trustURLCodebase=false \
  -Djdk.serialFilter='!*;java.base/*;com.ibm.mq.**' \
  -jar mq-client-application.jar

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.