CVE-2026-67242: RabbitMQ: OAuth2 is_integer(Exp) guard skips token-expiry checks for float exp

Published Sep 25, 2026
·
Updated

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.

Affected Software

1 affected component
RabbitMQ RabbitMQ>=4.2.0<4.2.9, >=4.3.0<4.3.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade RabbitMQ to a version that resolves this vulnerability.

    Fixed in 4.2.9
  2. Upgrade

    Upgrade RabbitMQ to a version that resolves this vulnerability.

    Fixed in 4.3.3

Event History

Sep 25, 2026
CVE Published
via MITRE·04:16 PM
Data Sourced
via MITRE·04:16 PM
DescriptionWeakness
Data Sourced
via NVD·05:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are realistically exposed?

Deployments using the OAuth2 backend are affected only if their identity provider emits the JWT exp claim as a JSON floating-point value. The data notes that this is uncommon because mainstream identity providers typically emit integer exp values.

2

What does an attacker need to exploit this issue?

An attacker needs a previously valid, correctly signed OAuth2 token whose exp claim is a float. The vulnerable code accepts the token even after its expiration time because signature verification does not validate exp.

3

What is the impact after an expired float-exp token is accepted?

Both the login-time expiry check and the mid-connection disconnect timer are skipped. As a result, an expired token can establish a connection and that connection will not be timed out based on token expiry.

4

How can I determine whether my environment is affected?

Confirm whether the RabbitMQ OAuth2 backend is enabled, whether the deployed version is from 4.2.0 through 4.2.9 or is 4.3.3, and inspect tokens issued by the identity provider to determine whether exp is encoded as a JSON float rather than an integer.

5

What versions contain the fix?

The issue is fixed in RabbitMQ versions 4.2.9 and 4.3.3.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203