Skip to main content

RabbitMQ EUVDEUVD-2026-87158

| CVE-2026-67242 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-09-25 GitHub_M
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain previously-valid signed OAuth2 token
  2. Delivery
    Present expired float-exp token to broker
  3. Exploit
    is_integer guard skips expiry validation
  4. Execution
    Broker accepts stale token, timer never fires
  5. Impact
    Retain unauthorized messaging access

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
Exploitation Conditions

Requires the RabbitMQ OAuth2 auth backend (rabbitmq_auth_backend_oauth2) to be enabled AND the configured identity provider to emit the JWT 'exp' claim as a JSON float (fractional NumericDate) rather than an integer - an uncommon configuration, as mainstream IdPs emit integer exp values. The attacker must also possess a previously-valid, correctly signed token, since jose_jwt:verify still validates the signature. These preconditions (non-default float-exp IdP behavior plus possession of a signed token) sharply limit real-world exploitability despite the network-reachable vector; brokers on default integer-exp IdPs or without the OAuth2 backend are unaffected.

Impact

This is a genuine but conditional authentication weakness that is overstated by its raw score in most real deployments. The provided CVSS 4.0 vector (6.3, AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N) correctly encodes the core limiter as AT:P (attack requirement present) rather than baking it into complexity - that requirement is the linchpin, because the description states the IdP must emit 'exp' as a JSON float, which is uncommon since mainstream identity providers emit integer NumericDate values. No EPSS score, no CISA KEV listing, and no public POC were supplied, so exploitation signals are absent; per policy this is treated as 'no public exploit identified at time of analysis.' The technical impact is limited (VC:L/VI:L, no availability impact): a stale-but-signed token is accepted and connections never time out, yielding continued messaging access rather than a fresh privilege gain. Net: a real correctness/session-expiration bug worth patching on OAuth2-backed brokers, but low practical priority given the non-default float-exp precondition and the requirement that the attacker already hold a previously-valid signed token. Note the tag 'Information Disclosure' is a loose fit - the flaw is fundamentally CWE-613 insufficient session expiration / expired-credential acceptance, though a stale token does grant read access, so the C:L component is defensible.

Exploit ScenarioDerived

In an environment where RabbitMQ uses the OAuth2 auth backend and the configured IdP issues tokens with a fractional (float) 'exp' claim, a user whose token has expired - or an attacker who captured that previously-valid signed token - presents it to the broker. Because the is_integer(Exp) guard falls through for float values, both the login-time expiry check and the mid-connection disconnect timer are skipped, so the expired token is accepted and the session never times out. No public exploit code is known; exploitation hinges on the uncommon float-exp IdP behavior and possession of a valid signed token.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Expired OAuth2 JWT access tokens are accepted indefinitely by RabbitMQ 4.2.0 through 4.2.8 and 4.3.0 through 4.3.2 when the rabbitmq_auth_backend_oauth2 backend is enabled and the identity provider emits the JWT 'exp' claim as a fractional (float) JSON number rather than an integer. Because the Erlang code guards expiry parsing with is_integer(Exp), both the login-time expiry check and the mid-connection disconnect timer silently fall through for float exp values, so an attacker holding a previously issued, correctly signed token can authenticate with it long after it has expired and keep connections open without being disconnected. The CVSS 4.0 base score is 6.3, but exploitability is sharply conditional - a non-default IdP behavior plus possession of a valid signed token - and no public exploit code has been identified at time of analysis; the issue is fixed in RabbitMQ 4.2.9 and 4.3.3.

RemediationAI

Vendor-released patch: upgrade to RabbitMQ 4.2.9 (https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.2.9) or 4.3.3 (https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.3.3), which change the is_integer(Exp) guards to is_number(Exp) with truncation so fractional NumericDate values are validated normally; the corresponding commits are d10a369a96658d0fba1050bd43c732e58fcf28fd and f189a8824c9efbce46bd9438fcdbda4521cfc923. If upgrading is not immediately possible, first confirm whether the identity provider actually emits a fractional exp: query the IdP's JWT configuration or decode a live token's 'exp' claim with a JWT inspection tool, since an integer exp means the code path is not reachable and no mitigation is required. If the IdP does emit float exp, reconfigure it to issue integer NumericDate values where the option exists (some IdPs expose a timestamp-precision setting) - this is the least disruptive workaround with no functional side effects on RabbitMQ. Alternatively, accept the risk only as a compensating control by disabling the OAuth2 backend and falling back to an internal or LDAP-based auth backend, noting that this changes the authentication architecture and loses OAuth2 token scopes and per-vhost authorization mapping. Reducing token TTLs does not mitigate the flaw because expiry is never evaluated for float exp. Restricting AMQP/management listener exposure to trusted networks reduces the attack surface but does not remove the weakness, since an attacker who can already reach the broker with a stolen signed token retains persistent access. Revoking or rotating all outstanding OAuth2 tokens and signing keys at the IdP after patching is advisable to invalidate any token that may have been reused past expiry.

Affected VersionsENISA

rabbitmq-server 4.3.0, < 4.3.3
rabbitmq-server 4.2.0, < 4.2.9

Affected Packages

euvd rabbitmq_server_4_2_0 fix: 4.2.9
euvd rabbitmq_server_4_3_0 fix: 4.3.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

RabbitMQ's OAuth2 resource-server plugin (deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl) validates JWT access tokens presented by clients as passwords. In affected releases, two functions - validate_token_expiry/1 and expiry_timestamp/1 (the latter feeding update_state for mid-connection re-authentication timers) - match the 'exp' claim with the Erlang guard 'when is_integer(Exp)' and fall through to ok/never clauses for any non-integer value. JWT parsing is delegated to the jose library, and jose_jwt:verify only validates the cryptographic signature, not the exp claim, so no other layer enforces expiry. RFC 7519 NumericDate values are permitted to be fractional, but mainstream identity providers (Keycloak, Okta, Azure AD, Auth0) emit integer exp values, which is why the flaw stayed latent; an IdP that emits a float exp causes RabbitMQ to accept an already-expired token at login and to never schedule the disconnect timer, leaving sessions alive indefinitely. The root cause class is CWE-613 (Insufficient Session Expiration). The upstream fix replaces the is_integer/1 guards with is_number/1 and truncates the fractional value to whole seconds before comparison, and adds a unit test (test_token_expiration_with_float_exp) that asserts an expired float exp is refused and a future float exp yields the correct numeric expiry_timestamp.

Know when Rabbitmq gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.8 MEDIUM

AC:H because it needs the uncommon float-exp IdP configuration; PR:N as the token itself is the credential; C:L/I:L for stale-token messaging access, no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
SUSE 4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Red Hat 4.8 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 25, 2026 - 17:04 EUVD
CVE Published
Sep 25, 2026 - 16:16 cve.org
MEDIUM 6.3

DescriptionCVE.org

RabbitMQ is a messaging and streaming broker. From 4.2.0 until 4.2.9 and 4.3.3, OAuth2 isinteger(Exp) guard skips token-expiry checks for float exp. validatetokenexpiry/1 (lines 208-214) and expirytimestamp/1 (138-144) both guard with 'when isinteger(Exp)' and fall through to ok/never for float values. josejwt:verify validates only the signature, not exp. With float exp, no expiry validation occurs anywhere in the If the IdP emits exp as a JSON float (RFC 7519 permits fractional NumericDate), both the login-time expiry check and the mid-connection disconnect timer are silently skipped , an already-expired token is accepted, and connections never time OAuth2 backend enabled IdP emits float exp (uncommon; mainstream IdPs emit integers) Attacker possesses a previously-valid signed. This issue is fixed in versions 4.2.9 and 4.3.3.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
High
RabbitMQ is a widely deployed open-source message broker in enterprise and cloud
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-57219 HIGH POC
8.7 Jul 10

Sensitive credential disclosure in RabbitMQ affects installations running the management plugin with OAuth 2 configured

CVE-2019-11287 HIGH POC
7.5 Nov 23

Pivotal RabbitMQ, versions 3.7.x prior to 3.7.21 and 3.8.x prior to 3.8.1, and RabbitMQ for Pivotal Platform, 1.16.x ver

CVE-2026-63335 MEDIUM POC
6.3 Aug 18

Denial of service in the RabbitMQ Java client library (com.rabbitmq:amqp-client ≤ 5.30.0) allows a malicious or compromi

CVE-2016-9877 CRITICAL
9.8 Dec 29

An issue was discovered in Pivotal RabbitMQ 3.x before 3.5.8 and 3.6.x before 3.6.6 and RabbitMQ for PCF 1.5.x before 1.

CVE-2026-77411 CRITICAL
9.5 Sep 16

Parsing desynchronization in the RabbitMQ amqp091-go AMQP 0.9.1 client library before 1.13.0 lets a malicious or comprom

CVE-2026-77405 CRITICAL
9.4 Sep 16

RabbitMQ's amqp091-go Go client library, in all versions before 1.13.0, builds TLS configuration from amqps:// URIs with

CVE-2021-32718 MEDIUM POC
5.4 Jun 28

RabbitMQ is a multi-protocol messaging broker. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploita

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-77408 CRITICAL
9.1 Sep 16

Silent AMQP 0.9.1 metadata corruption in the RabbitMQ amqp091-go Go client library prior to 1.13.0 lets an application t

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-63336 MEDIUM POC
5.1 Aug 18

TLS certificate validation is completely bypassed in the RabbitMQ Java client library (`com.rabbitmq:amqp-client`) prior

CVE-2026-77412 HIGH
8.9 Sep 16

Denial of service in the official RabbitMQ Go client library amqp091-go (versions prior to 1.13.0): a malicious, comprom

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy