<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 15 Oct 2026 04:19:29 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-292983</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-292983</link>
      <description>EUVD-2026-292983</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-292983</guid>
    </item>
    <item>
      <title>fkie_cve-2026-41213</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-41213</link>
      <description>&lt;p&gt;@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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;@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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-41213</guid>
    </item>
    <item>
      <title>GHSA-jhm7-29pj-4xvf — @node-oauth/oauth2-server: PKCE code_verifier ABNF not enforced in token exchange allows brute-force redemption of inte…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-jhm7-29pj-4xvf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @node-oauth/oauth2-server&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;### Root cause&lt;/p&gt;
&lt;p&gt;1. `lib/pkce/pkce.js` (`getHashForCodeChallenge`) only checks that `verifier` is a non-empty string before hashing for `S256`; it does not enforce RFC7636 ABNF (`43..128` unreserved chars).
2. `lib/grant-types/authorization-code-grant-type.js` compares `hash(code_verifier)` to stored `codeChallenge` without validating verifier format/length.
3. In `AuthorizationCodeGrantType.handle`, authorization code revocation happens **after** verifier validation. Invalid guesses fail before revoke, so the same code can be retried repeatedly.&lt;/p&gt;
&lt;p&gt;## Steps to Reproduce&lt;/p&gt;
&lt;p&gt;### Setup&lt;/p&gt;
&lt;p&gt;- PKCE authorization code exists with:
  - `codeChallengeMethod = &amp;#34;S256&amp;#34;`
  - `codeChallenge = BASE64URL(SHA256(&amp;#34;z&amp;#34;))` (verifier is one character, RFC-invalid)
- Attacker has intercepted the authorization code value.&lt;/p&gt;
&lt;p&gt;### Reproduction&lt;/p&gt;
&lt;p&gt;1. Send repeated token requests with guessed `code_verifier` values:&lt;/p&gt;
&lt;p&gt;```http
POST /token HTTP/1.1
Host: oauth.example
Content-Type: application/x-www-form-urlencoded&lt;/p&gt;
&lt;p&gt;grant_type=authorization_code&amp;amp;
client_id=client1&amp;amp;
client_secret=s3cret&amp;amp;
code=stolen-auth-code&amp;amp;
redirect_uri=https://client.exa…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @node-oauth/oauth2-server&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;### Root cause&lt;/p&gt;
&lt;p&gt;1. `lib/pkce/pkce.js` (`getHashForCodeChallenge`) only checks that `verifier` is a non-empty string before hashing for `S256`; it does not enforce RFC7636 ABNF (`43..128` unreserved chars).
2. `lib/grant-types/authorization-code-grant-type.js` compares `hash(code_verifier)` to stored `codeChallenge` without validating verifier format/length.
3. In `AuthorizationCodeGrantType.handle`, authorization code revocation happens **after** verifier validation. Invalid guesses fail before revoke, so the same code can be retried repeatedly.&lt;/p&gt;
&lt;p&gt;## Steps to Reproduce&lt;/p&gt;
&lt;p&gt;### Setup&lt;/p&gt;
&lt;p&gt;- PKCE authorization code exists with:
  - `codeChallengeMethod = &amp;#34;S256&amp;#34;`
  - `codeChallenge = BASE64URL(SHA256(&amp;#34;z&amp;#34;))` (verifier is one character, RFC-invalid)
- Attacker has intercepted the authorization code value.&lt;/p&gt;
&lt;p&gt;### Reproduction&lt;/p&gt;
&lt;p&gt;1. Send repeated token requests with guessed `code_verifier` values:&lt;/p&gt;
&lt;p&gt;```http
POST /token HTTP/1.1
Host: oauth.example
Content-Type: application/x-www-form-urlencoded&lt;/p&gt;
&lt;p&gt;grant_type=authorization_code&amp;amp;
client_id=client1&amp;amp;
client_secret=s3cret&amp;amp;
code=stolen-auth-code&amp;amp;
redirect_uri=https://client.exa…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-jhm7-29pj-4xvf</guid>
    </item>
  </channel>
</rss>
