CVE-2026-53431
CVE-2026-53431 is a critical-severity vulnerability with a CVSS 4.0 base score of 9.1. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-294.
Key facts
- Severity: Critical (CVSS 4.0 base score 9.1)
- EPSS exploit prediction: 0% (35th percentile)
- Actively exploited: Not listed in CISA KEV
- Weakness: CWE-294
- Published:
- Last modified:
Description
Authentication Bypass by Capture-replay vulnerability in malach-it Boruta allows an attacker who has obtained a previously valid JWT client assertion to authenticate as the issuing OAuth client after the assertion has expired. Boruta accepts JWT-based client authentication (client_secret_jwt and private_key_jwt token endpoint authentication methods) but never enforces that the assertion's exp claim is in the future. The pre-check helper Boruta.Oauth.Request.Base.check_expiration/1 in lib/boruta/oauth/request/base.ex only verifies that an exp claim is present (it pattern-matches on the existence of the key and returns success), and the Joken token configuration used for signature verification, Boruta.Oauth.Authorization.Client.Token.token_config/0 in lib/boruta/oauth/authorization/client.ex, returns an empty map, so Joken's default exp claim validator is not engaged either. Any attacker who obtains a validly-signed client assertion (for example through logs, reverse proxies, browser tooling, or other observability surfaces) can replay it indefinitely to authenticate as the client and obtain access tokens with that client's privileges. This issue affects boruta: from 2.3.0 before 2.3.7.
Frequently asked questions
- What is CVE-2026-53431?
- Authentication Bypass by Capture-replay vulnerability in malach-it Boruta allows an attacker who has obtained a previously valid JWT client assertion to authenticate as the issuing OAuth client after the assertion has expired. Boruta accepts JWT-based client authentication (client_secret_jwt and private_key_jwt token endpoint authentication methods) but never enforces that the assertion's exp claim is in the future. The pre-check helper Boruta.Oauth.Request.Base.check_expiration/1 in lib/boruta/oauth/request/base.ex only verifies that an exp claim is present (it pattern-matches on the existence of the key and returns success), and the Joken token configuration used for signature verification, Boruta.Oauth.Authorization.Client.Token.token_config/0 in lib/boruta/oauth/authorization/client.ex, returns an empty map, so Joken's default exp claim validator is not engaged either. Any attacker who obtains a validly-signed client assertion (for example through logs, reverse proxies, browser tooling, or other observability surfaces) can replay it indefinitely to authenticate as the client and obtain access tokens with that client's privileges. This issue affects boruta: from 2.3.0 before 2.3.7.
- How severe is CVE-2026-53431?
- CVE-2026-53431 has a CVSS 4.0 base score of 9.1, rated critical severity.
- Is CVE-2026-53431 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 0% (35th percentile), an estimate of the probability of exploitation in the next 30 days.
- How do I fix CVE-2026-53431?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround. Given its critical severity, prioritise patching exposed systems.
- When was CVE-2026-53431 published?
- CVE-2026-53431 was published on 2026-07-30.
References
- https://cna.erlef.org/cves/CVE-2026-53431.html
- https://github.com/malach-it/boruta_auth/commit/5204f88f9b2cdd9637a755337ed5f99185be5474
- https://github.com/malach-it/boruta_auth/commit/69363432aa36760fc5438e4e17115d0f7c1b925a
- https://github.com/malach-it/boruta_auth/security/advisories/GHSA-xjv8-vmh5-xhf6
- https://osv.dev/vulnerability/EEF-CVE-2026-53431
Other CWE-294 (Authentication Bypass by Capture-replay) vulnerabilities
- CVE-2025-49752 — Critical (CVSS 10.0): Azure Bastion Elevation of Privilege Vulnerability
- CVE-2026-68079 — Critical (CVSS 9.8): In Apache CXF's DefaultEncryptingCodeDataProvider, a captured authorization code can be redeemed an unlimited number…
- CVE-2026-28564 — Critical (CVSS 9.8): Insufficient Session Expiration, Authentication Bypass by Capture-replay vulnerability in Apache IoTDB. REST Basic…
- CVE-2026-11856 — Critical (CVSS 9.8): Successfully using libcurl to do a transfer to a specific HTTP origin (`hostA`) with **Digest** authentication and then…
- CVE-2026-32987 — Critical (CVSS 9.8): OpenClaw before 2026.3.13 allows bootstrap setup codes to be replayed during device pairing verification in…
- CVE-2025-67135 — Critical (CVSS 9.8): Weak Security in the PF-50 1.2 keyfob of PGST PG107 Alarm System 1.25.05.hf allows attackers to compromise access…
Browse all CWE-294 (Authentication Bypass by Capture-replay) vulnerabilities →