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

CVE-2026-12355: IBM MQ JNDI Injection RCE Vulnerability

CVE-2026-12355 is a JNDI injection flaw in IBM MQ versions 9.1 through 10.0 that enables remote code execution through insufficient input validation. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-12355 Overview

CVE-2026-12355 is a Java Naming and Directory Interface (JNDI) injection vulnerability in IBM MQ. The flaw stems from insufficient input validation across multiple long-term support and continuous delivery releases. An unauthenticated network attacker can supply crafted JNDI lookup data to trigger information disclosure or remote code execution on affected message queue servers. The vulnerability is tracked under CWE-74 (Improper Neutralization of Special Elements in Output Used by a Downstream Component).

Critical Impact

Successful exploitation permits arbitrary code execution on the IBM MQ host with the privileges of the queue manager process, potentially exposing sensitive messaging data and enabling lateral movement.

Affected Products

  • IBM MQ 9.1.0.0 through 9.1.0.37 LTS and 9.2.0.0 through 9.2.0.43 LTS
  • IBM MQ 9.3.0.0 through 9.3.0.41 LTS and 9.3.0.0 through 9.3.5.1 CD
  • IBM MQ 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-12355 published to NVD
  • 2026-09-16 - Last updated in NVD database

Technical Details for CVE-2026-12355

Vulnerability Analysis

IBM MQ processes attacker-influenced values that flow into a JNDI lookup without adequate sanitization. JNDI resolves names through pluggable service providers including Lightweight Directory Access Protocol (LDAP) and Remote Method Invocation (RMI). When an attacker controls the lookup string, the client can be coerced into contacting an adversary-hosted directory service and retrieving a malicious object reference.

The returned reference can point to a remote Java class, which the resolver instantiates during the naming operation. This behavior is the same pattern that enabled the Log4Shell class of attacks and results in code execution within the queue manager runtime. Information disclosure is also possible when the lookup returns sensitive attributes or triggers outbound requests carrying credential material.

Root Cause

The root cause is missing neutralization of special elements passed to a downstream JNDI API [CWE-74]. The affected code paths accept untrusted input and pass it directly into naming operations without an allowlist of permitted schemes, hosts, or object factories.

Attack Vector

Exploitation occurs over the network and requires no authentication or user interaction, though attack complexity is high because the attacker must reach a code path that performs the lookup and control the resolved name. A typical chain involves sending a crafted message or configuration value referencing an attacker-controlled ldap:// or rmi:// endpoint. The queue manager then fetches and deserializes an attacker-supplied object, resulting in arbitrary code execution.

Refer to the IBM Support advisory for node 7284912 for vendor-confirmed exploitation prerequisites.

Stop Remote Code Execution Before It Runs

Singularity™ Endpoint detects and blocks exploit attempts at machine speed, including zero-days and novel attack techniques.

Stop Exploit Attempts

Detection Methods for CVE-2026-12355

Indicators of Compromise

  • Outbound connections from IBM MQ hosts to unexpected LDAP (TCP/389, TCP/636) or RMI (TCP/1099) endpoints.
  • Java class-loading events in queue manager logs referencing remote codebases or unfamiliar object factories.
  • Unexpected child processes spawned by the amqzmgr0 or runmqlsr binaries.
  • New or modified message flows containing ${jndi: sequences or serialized Java payloads.

Detection Strategies

  • Inspect IBM MQ error logs (AMQERR01.LOG) for JNDI-related exceptions, naming lookup failures, and deserialization warnings.
  • Deploy network monitoring rules that flag LDAP or RMI traffic originating from messaging infrastructure to external IP ranges.
  • Hunt across message payloads and channel configurations for JNDI URI schemes such as ldap://, ldaps://, rmi://, and dns://.

Monitoring Recommendations

  • Enable verbose channel auditing on all queue managers and forward logs to a centralized analytics platform.
  • Baseline expected egress destinations for MQ hosts and alert on deviations.
  • Correlate process creation events on MQ servers with inbound message activity to identify anomalous execution.

How to Mitigate CVE-2026-12355

Immediate Actions Required

  • Apply the IBM-provided fix packs referenced in the vendor advisory to all affected 9.1, 9.2, 9.3, 9.4, and 10.0 installations.
  • Restrict inbound access to MQ listener ports (default TCP/1414) to trusted networks and authenticated peers only.
  • Block outbound LDAP, LDAPS, RMI, and DNS traffic from queue manager hosts to the public internet.
  • Audit message content filters and channel exits for validation of user-supplied data.

Patch Information

IBM has published remediation guidance and fix packs on the IBM Support page for node 7284912. Administrators should upgrade to the latest cumulative security update for their release train, prioritizing internet-exposed brokers and shared enterprise messaging backbones.

Workarounds

  • Set the Java system property com.sun.jndi.ldap.object.trustURLCodebase and com.sun.jndi.rmi.object.trustURLCodebase to false to block remote codebase loading.
  • Remove or disable message handlers that perform JNDI lookups on untrusted content when patching cannot occur immediately.
  • Enforce channel authentication records (CHLAUTH) and TLS mutual authentication to limit which clients can submit messages to the queue manager.
bash
# Configuration example: disable remote codebase loading for JNDI providers
export IBM_JAVA_OPTIONS="-Dcom.sun.jndi.ldap.object.trustURLCodebase=false \
  -Dcom.sun.jndi.rmi.object.trustURLCodebase=false \
  -Dcom.sun.jndi.cosnaming.object.trustURLCodebase=false"

# Restart the queue manager to apply
endmqm -i QM1 && strmqm QM1

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.