CVE-2026-67593: Apache ActiveMQ Artemis Pre-Authentication Queue Deletion via Openwire
HERMES THREAT SCORE & ENTERPRISE BROKER DISRUPTION
Target:Apache ActiveMQ Artemis β Openwire Protocol Handler & Queue Manager CVSS v3.1 evaluates CVE-2026-67593 at 9.1 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H) with zero confidentiality impact. In enterprise distributed systems and asynchronous AI agent pipelines, Hermes Threat Score weighs this at 92 (CRITICAL). Artemis queues serve as the foundational backbone for transactional message exchange, audit logging, and agent tool execution queues. Because queue deletion is executed prior to connection authentication, remote unauthenticated attackers can silently destroy active destination queues without triggering failed login alarms, causing permanent data loss and state desynchronization.
HASS AGENTIC SEVERITY & PIPELINE DENIAL OF SERVICE
Target:Asynchronous Agent Task Queues, Telemetry Buses & Inter-Agent Coordination In modern multi-agent systems, message brokers function as the central nervous system decoupling planner agents, worker nodes, and execution tool workers. Exploiting CVE-2026-67593 severs agent communication channels instantaneously. Dropping durable queues causes distributed multi-agent workflows to stall indefinitely, inducing state deadlocks, lost feedback loops, and cascading execution failures across dependent enterprise microservices.
CVE-2026-67593: Apache ActiveMQ Artemis Pre-Authentication Queue Deletion via OpenwireVULNERABILITY
1. Technical Context & Attack Surface
Section titled β1. Technical Context & Attack SurfaceβThe OpenWire protocol operates as an optimized binary protocol where clients exchange structured commands (ConnectionInfo, SessionInfo, ConsumerInfo, RemoveSubscriptionInfo). Under standard configurations, authentication is enforced during ConnectionInfo processing:
βββββββββββββββββββ TCP:61616 OpenWire βββββββββββββββββββββββββββββββββ Remote Attacker β βββββββββββββββββββββββββββββ> β Apache ActiveMQ Artemis Host ββ (Unauthenticatedβ β ββ Raw Socket) β βββ RemoveSubscriptionInfo ββ> β -> Protocol Packet Demux ββ β (Bypasses Auth Filter) β -> Bypasses SecurityManager ββ β β -> Deletes Target Queue! ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ| Parameter | Technical Detail | Operational Impact |
|---|---|---|
| CVE Identifier | CVE-2026-67593 | Apache Security Advisory / OSS-Security |
| Vulnerability Class | Missing Authentication (CWE-306) | Pre-authentication queue deletion & DoS |
| Affected Component | OpenWireConnection.java & artemis-openwire-protocol | OpenWire wire format command processing |
| Default Port | TCP 61616 (OpenWire connector) | Exposed ingress, internal service meshes |
| Authentication Required | None (PR:N) | Zero credentials needed |
| Exploit Vector | Malformed RemoveSubscriptionInfo wire packet | Immediate message purge & queue deletion |
| Remediated Release | Apache Artemis 2.57.0 | Official release update |
2. Root Cause Analysis & Architecture
Section titled β2. Root Cause Analysis & ArchitectureβThe vulnerability originates in the state machine of org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection. When an OpenWire connection is initiated, the broker instantiates a session context to process commands.
Protocol Command Dispatching Flaw
Section titled βProtocol Command Dispatching FlawβUnder normal operation, a client issues ConnectionInfo, providing authentication credentials that are validated against JAAS security plugins. However, the connection handlerβs packet dispatcher (processCommand) processes subscription removal commands out-of-band:
// Vulnerable logic pattern in OpenWireConnection.javapublic Response processRemoveSubscriptionInfo(RemoveSubscriptionInfo info) throws Exception { checkConnected(); // Only checks if TCP socket is active, NOT if authenticated!
String subscriptionName = info.getSubscriptionName(); String clientId = info.getClientId();
// Direct invocation of broker queue deletion server.destroyQueue(SimpleString.toSimpleString(subscriptionName), null, false, true);
return null;}Because checkConnected() merely asserts the physical transport connection rather than an authenticated session state, the packet processor immediately maps the supplied subscription or queue name to an internal Queue resource and executes destroyQueue().
sequenceDiagram autonumber actor Attacker as "Unauthenticated Attacker" participant Transport as "OpenWire TCP Ingress (Port 61616)" participant Parser as "OpenWire Protocol Demuxer" participant SecMgr as "Artemis Security Manager" participant QMgr as "Queue / Address Manager" participant Storage as "Durable Journal Storage"
Attacker->>Transport: "TCP Handshake (SYN -> SYN/ACK -> ACK)" Attacker->>Transport: "Send WireFormat Negotiation Frame" Transport->>Parser: "Demux command stream" Note over Attacker,Parser: "Skipping ConnectionInfo authentication frame entirely" Attacker->>Transport: "Send RemoveSubscriptionInfo(targetQueue='orders.payments')" Parser->>Parser: "checkConnected() passes (socket alive)" Note over Parser,SecMgr: "SecurityManager.checkPermission() BYPASSED" Parser->>QMgr: "server.destroyQueue('orders.payments')" QMgr->>Storage: "Delete journal records & purge active messages" Storage-->>QMgr: "Queue unmapped & deleted" QMgr-->>Parser: "Queue destroyed successfully" Note over QMgr,Storage: "All in-flight transactions permanently erased"3. Exploit Execution Flow
Section titled β3. Exploit Execution FlowβExploitation requires no credentials or valid client certificates:
- Network Probe & WireFormat Negotiation: The attacker connects to TCP port 61616 and transmits standard OpenWire
WireFormatInfobytes to establish packet framing and protocol version agreement. - Omission of Authentication Handshake: Rather than transmitting a
ConnectionInfocommand with credentials, the attacker directly constructs aRemoveSubscriptionInfocommand frame. - Queue Name Targeting: The attacker sets
subcriptionNameorclientIdto match high-value business or agent task queues (e.g.,agent.tasks.inbound,finance.transfers,audit.trail). - Command Dispatch: The packet is sent across the socket. The server decodes the frame and immediately invokes
server.destroyQueue(). - Cascading State Destruction: Active consumers attached to the target queue receive sudden disconnect signals or null responses. Durable message journals are erased, and business transactions in flight are unrecoverably purged.
4. Forensic Investigation & Telemetry
Section titled β4. Forensic Investigation & TelemetryβDetecting exploitation of CVE-2026-67593 requires inspecting broker journal events, transport connection audits, and network flow anomalies.
Audit Log Signatures
Section titled βAudit Log SignaturesβIn vulnerable versions, Artemis audit logs (audit.log) record queue destructions without prior user authentication entries:
2026-09-20 03:14:22,891 [audit] AMQ601004: User null is deleting queue 'finance.payments.dlq' on connection /198.51.100.44:482012026-09-20 03:14:23,102 [audit] AMQ221023: Queue finance.payments.dlq has been deletedThe presence of User null or missing authentication session identifiers prior to destroyQueue is a definitive indicator of compromise.
Network Level Telemetry
Section titled βNetwork Level Telemetryβ- Inspect network captures on port 61616 for TCP sessions containing
RemoveSubscriptionInfocommand IDs (COMMAND_TYPE = 9) where no precedingConnectionInfo(COMMAND_TYPE = 3) was exchanged. - Sudden drops in queue depths accompanied by consumer error logs reporting
AMQ229017: Queue does not exist.
5. Detection Engineering
Section titled β5. Detection Engineeringβtitle: Unauthenticated ActiveMQ Artemis Queue Deletionid: e9c1a012-78d4-4f2b-91c2-67593cve2026status: experimentaldescription: Detects queue destruction events executed by null or unauthenticated users in Apache ActiveMQ Artemis audit logs.logsource: product: activemq_artemis service: auditdetection: selection: message|contains: - 'User null is deleting queue' - 'is deleting queue' filter_auth: message|contains: 'User authenticated' condition: selection and not filter_authlevel: criticaltags: - attack.impact - attack.t1499 - cve.2026-67593alert tcp any any -> any 61616 (msg:"HERMES - Apache ActiveMQ Artemis Pre-Auth Queue Deletion Attempt (CVE-2026-67593)"; flow:to_server,established; content:"|09|"; offset:4; depth:1; content:"ActiveMQ"; nocase; classtype:attempted-admin; sid:202667593; rev:1;)// Hunt for sudden queue deletion anomalies in Artemis Broker LogsApplicationEvents| where Application == "Artemis"| where RawData has "AMQ601004" or RawData has "User null is deleting queue"| extend RemoteIP = extract(@"connection /([0-9\.]+):", 1, RawData)| extend TargetQueue = extract(@"deleting queue '([^']+)'", 1, RawData)| summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), TotalPurges=count() by RemoteIP, TargetQueue| order by TotalPurges desc6. Remediation & Hardening Strategy
Section titled β6. Remediation & Hardening StrategyβImmediate Remediation
Section titled βImmediate Remediationβ- Upgrade Artemis Broker: Upgrade to Apache Artemis 2.57.0 or later immediately. The patch validates connection session security context before processing any subscription removal commands.
- Disable OpenWire Connector: If clients use AMQP 1.0, MQTT, or STOMP, disable the OpenWire acceptor in
broker.xml:<!-- Remove or comment out the openwire acceptor if not strictly needed --><!-- <acceptor name="artemis">tcp://0.0.0.0:61616?protocols=OPENWIRE</acceptor> -->
Defense-in-Depth Hardening
Section titled βDefense-in-Depth Hardeningβ- Network Ingress Isolation: Restrict access to port 61616 to verified internal application tiers using firewall or Kubernetes network policies. Never expose Artemis acceptors to public internet routing.
- Mutual TLS (mTLS): Enforce strict mTLS client certificate verification on all acceptors (
sslEnabled=true&needClientAuth=true) to terminate untrusted connections before protocol parsing occurs.
7. Strategic Cross-References
Section titled β7. Strategic Cross-Referencesβ8. Sources & References
Section titled β8. Sources & Referencesβ- SecLists oss-sec Announcement: CVE-2026-67593 Openwire Queue Deletion
- Apache ActiveMQ Advisory: Thread zlglnsg8s5xv8n56d15dm5mf00h2d8xs
- NIST National Vulnerability Database: CVE-2026-67593 Detail
- Apache Artemis Documentation: Security & Protocol Acceptor Hardening