Skip to main content

CVE-2022-31142: CWE-208: Observable Timing Discrepancy in fastify fastify-bearer-auth

Medium
Published: Thu Jul 14 2022 (07/14/2022, 18:55:11 UTC)
Source: CVE
Vendor/Project: fastify
Product: fastify-bearer-auth

Description

@fastify/bearer-auth is a Fastify plugin to require bearer Authorization headers. @fastify/bearer-auth prior to versions 7.0.2 and 8.0.1 does not securely use crypto.timingSafeEqual. A malicious attacker could estimate the length of one valid bearer token. According to the corresponding RFC 6750, the bearer token has only base64 valid characters, reducing the range of characters for a brute force attack. Version 7.0.2 and 8.0.1 of @fastify/bearer-auth contain a patch. There are currently no known workarounds. The package fastify-bearer-auth, which covers versions 6.0.3 and prior, is also vulnerable starting at version 5.0.1. Users of fastify-bearer-auth should upgrade to a patched version of @fastify/bearer-auth.

AI-Powered Analysis

AILast updated: 06/23/2025, 02:50:30 UTC

Technical Analysis

CVE-2022-31142 is a vulnerability affecting the Fastify plugin @fastify/bearer-auth, which is used to enforce bearer token authorization headers in Fastify web applications. The issue arises from improper use of the Node.js crypto.timingSafeEqual function prior to versions 7.0.2 and 8.0.1 of @fastify/bearer-auth, as well as versions >=5.0.1 and <7.0.2 of the legacy fastify-bearer-auth package. Specifically, the plugin does not securely implement timing-safe comparisons when validating bearer tokens, resulting in an observable timing discrepancy (CWE-208). This discrepancy allows an attacker to infer the length of a valid bearer token by measuring response times, which can significantly reduce the search space for brute force or token guessing attacks. Since bearer tokens per RFC 6750 are base64-encoded, the character set is limited, making brute forcing more feasible once the token length is known. Although no known exploits have been reported in the wild, the vulnerability exposes a side-channel attack vector that could lead to unauthorized access if an attacker successfully guesses or reconstructs a valid token. The issue was patched in versions 7.0.2 and 8.0.1 of @fastify/bearer-auth, and users of the older fastify-bearer-auth package are advised to upgrade to the patched @fastify/bearer-auth versions. No workarounds are currently available, so upgrading is the primary remediation step. This vulnerability is categorized under CWE-208 (Observable Timing Discrepancy), which highlights the risk of leaking sensitive information through timing side channels during cryptographic or authentication operations.

Potential Impact

For European organizations using Fastify-based web services that rely on the @fastify/bearer-auth plugin for bearer token authentication, this vulnerability could lead to partial disclosure of token characteristics, specifically token length. While this does not directly disclose token values, it significantly aids attackers in mounting brute force or token guessing attacks by narrowing the token search space. Successful exploitation could result in unauthorized access to protected APIs or services, potentially compromising confidentiality and integrity of sensitive data. The impact is particularly relevant for sectors with high reliance on API security, such as finance, healthcare, and government services. Given the widespread adoption of Fastify in modern Node.js applications, organizations that have not updated to patched versions remain at risk. However, the absence of known exploits and the requirement for an attacker to perform precise timing measurements somewhat limits immediate risk. Still, the vulnerability lowers the barrier for attackers to compromise bearer token authentication, which could be leveraged in targeted attacks against critical infrastructure or data repositories within European enterprises.

Mitigation Recommendations

1. Immediate upgrade to patched versions: Organizations should upgrade all instances of @fastify/bearer-auth to version 7.0.2 or later, or 8.0.1 or later, as applicable. For users of the legacy fastify-bearer-auth package, migration to the maintained @fastify/bearer-auth plugin is strongly recommended. 2. Implement additional rate limiting and anomaly detection on authentication endpoints to detect and block repeated token guessing attempts that could exploit timing discrepancies. 3. Employ network-level protections such as Web Application Firewalls (WAFs) configured to monitor and throttle suspicious request patterns targeting bearer token authentication. 4. Consider adding randomized delays or uniform response times in authentication responses to further obscure timing information, although this may require custom implementation beyond the plugin. 5. Conduct thorough code reviews and penetration testing focused on authentication mechanisms to identify any residual timing or side-channel vulnerabilities. 6. Educate developers and security teams about timing attacks and the importance of using timing-safe comparison functions correctly in cryptographic and authentication code.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
GitHub_M
Date Reserved
2022-05-18T00:00:00.000Z
Cisa Enriched
true

Threat ID: 682d9844c4522896dcbf371e

Added to database: 5/21/2025, 9:09:24 AM

Last enriched: 6/23/2025, 2:50:30 AM

Last updated: 7/26/2025, 2:50:23 AM

Views: 18

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats