Description
@node-oauth/oauth2-server is a module for implementing an OAuth2 server in Node.js. The token exchange path accepts RFC7636-invalid code_verifier values (including one-character strings) for S256 PKCE flows. Because short/weak verifiers are accepted and failed verifier attempts do not consume the authorization code, an attacker who intercepts an authorization code can brute-force code_verifier guesses online until token issuance succeeds.
Published: 2026-04-23
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized Token Issuance
Action: Apply Patch
AI Analysis

Impact

In the node-oauth2-server library, a flaw in the token exchange process for S256 PKCE flows allows the server to accept code_verifier values that do not meet RFC7636 requirements, including one‑character strings. If an attacker captures an OAuth2 authorization code, they can repeatedly guess these weak or short code_verifier values online. Because the server does not invalidate the code after a failed attempt, the attacker can iterate many times until a correct verifier is supplied, resulting in the issuance of an access token that can be used to access protected resources. This weakness is a consequence of improper input validation (CWE‑1289, CWE‑307).

Affected Systems

The vulnerability affects the node-oauth:node-oauth2-server package, a Node.js library used to implement OAuth2 servers. All releases of the library are potentially susceptible until the issue is fixed, as no specific version range was provided by the CNA.

Risk and Exploitability

The CVSS score of 5.9 indicates a moderate severity, while the EPSS score of less than 1% suggests that known exploitation is low at present. The vulnerability is not yet listed as a known exploited vulnerability by CISA. The likely attack vector is online, requiring the interception of an authorization code over an insecure transport or a compromised network. Once the code is captured, the attacker can brute‑force the code_verifier through repeated API calls until the token endpoint issues a valid access token. This yields full access to the victim’s scopes and can lead to unauthorized data disclosure or manipulation.

Generated by OpenCVE AI on April 28, 2026 at 07:32 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade node-oauth2-server to a version that enforces RFC7636 code_verifier validation.
  • Use TLS everywhere to protect OAuth2 authorization codes from interception.
  • Implement server‑side throttling or code invalidation after a set number of failed code_verifier attempts to mitigate brute‑force attacks.

Generated by OpenCVE AI on April 28, 2026 at 07:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jhm7-29pj-4xvf @node-oauth/oauth2-server: PKCE code_verifier ABNF not enforced in token exchange allows brute-force redemption of intercepted authorization codes
History

Tue, 28 Apr 2026 09:45:00 +0000

Type Values Removed Values Added
First Time appeared Node-oauth
Node-oauth node-oauth2-server
Vendors & Products Node-oauth
Node-oauth node-oauth2-server

Sat, 25 Apr 2026 02:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 23 Apr 2026 18:45:00 +0000

Type Values Removed Values Added
Description @node-oauth/oauth2-server is a module for implementing an OAuth2 server in Node.js. The token exchange path accepts RFC7636-invalid code_verifier values (including one-character strings) for S256 PKCE flows. Because short/weak verifiers are accepted and failed verifier attempts do not consume the authorization code, an attacker who intercepts an authorization code can brute-force code_verifier guesses online until token issuance succeeds.
Title @node-oauth/oauth2-server: PKCE code_verifier ABNF not enforced in token exchange allows brute-force redemption of intercepted authorization codes
Weaknesses CWE-1289
CWE-307
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'}


Subscriptions

Node-oauth Node-oauth2-server
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-25T01:23:58.715Z

Reserved: 2026-04-18T02:51:52.975Z

Link: CVE-2026-41213

cve-icon Vulnrichment

Updated: 2026-04-25T01:23:53.346Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-04-23T19:17:29.400

Modified: 2026-04-25T02:16:02.250

Link: CVE-2026-41213

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-28T09:25:47Z

Weaknesses