<?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://db.gcve.eu</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, 01 Oct 2026 12:36:46 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-102273 — PyJWT accepts public JWK containers as HMAC secrets</title>
      <link>https://db.gcve.eu/vuln/cve-2026-102273</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; jpadilla pyjwt&lt;/p&gt;
&lt;p&gt;PyJWT is a Python implementation of JSON Web Token standards. From 2.13.0 until 2.14.0, PyJWT HMACAlgorithm.prepare_key is affected because HMAC key guard only recognizes top-level public JWK forms and misses container representations. This occurs when an application allows HMAC and asymmetric algorithms and passes a public JWK container as the raw key. As a result, public asymmetric key material is accepted as the HMAC secret. Consequently, an attacker who knows the public key can forge a token with arbitrary authenticated claims. This issue is fixed in version 2.14.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; jpadilla pyjwt&lt;/p&gt;
&lt;p&gt;PyJWT is a Python implementation of JSON Web Token standards. From 2.13.0 until 2.14.0, PyJWT HMACAlgorithm.prepare_key is affected because HMAC key guard only recognizes top-level public JWK forms and misses container representations. This occurs when an application allows HMAC and asymmetric algorithms and passes a public JWK container as the raw key. As a result, public asymmetric key material is accepted as the HMAC secret. Consequently, an attacker who knows the public key can forge a token with arbitrary authenticated claims. This issue is fixed in version 2.14.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-102273</guid>
    </item>
    <item>
      <title>GHSA-w2cx-738m-mc7w — PyJWT accepts public JWK containers as HMAC secrets</title>
      <link>https://db.gcve.eu/vuln/ghsa-w2cx-738m-mc7w</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: PyJWT&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;PyJWT 2.13.0 contains an incomplete defense against algorithm confusion when
an application mixes symmetric and asymmetric algorithms in one verification
path. A public RSA, EC, or OKP JWK can be accepted as an HMAC secret when it
is wrapped in a JWKS object, nested in an array, or represented in another
container form that does not expose a top-level `kty` member.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;An attacker who knows the public key material can forge HS256/HS384/HS512
tokens if the application simultaneously:&lt;/p&gt;
&lt;p&gt;* allows both HS* and asymmetric algorithms;
* passes raw public JWK/JWKS JSON as `key=`; and
* uses that same value as the HMAC secret.&lt;/p&gt;
&lt;p&gt;This can allow forged JWT claims in affected application configurations. The
issue does not affect applications that keep symmetric and asymmetric
verification paths separate and follow PyJWT&amp;#39;s algorithm-selection guidance.&lt;/p&gt;
&lt;p&gt;### Fix status&lt;/p&gt;
&lt;p&gt;The fix is on `master` in commit `801cd12` (`fix: reject public JWK container
HMAC keys`). `HMACAlgorithm.prepare_key` now rejects public JWK members found in
objects, arrays, nested containers, BOM/UTF variants, and recursion-limit
inputs. It also recognizes escaped JSON member names without treating ordinary
string values as JWKs. Ordinary JSON secrets remain accepted byte-for-byte.&lt;/p&gt;
&lt;p&gt;The change was tested with focused regression tests and the full local tox
matrix. Available Python 3.9, 3.12, and 3.13 crypto/no-crypto suites, mypy,
package metadata, and coverage passed; unavailable interpreters were…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: PyJWT&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;PyJWT 2.13.0 contains an incomplete defense against algorithm confusion when
an application mixes symmetric and asymmetric algorithms in one verification
path. A public RSA, EC, or OKP JWK can be accepted as an HMAC secret when it
is wrapped in a JWKS object, nested in an array, or represented in another
container form that does not expose a top-level `kty` member.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;An attacker who knows the public key material can forge HS256/HS384/HS512
tokens if the application simultaneously:&lt;/p&gt;
&lt;p&gt;* allows both HS* and asymmetric algorithms;
* passes raw public JWK/JWKS JSON as `key=`; and
* uses that same value as the HMAC secret.&lt;/p&gt;
&lt;p&gt;This can allow forged JWT claims in affected application configurations. The
issue does not affect applications that keep symmetric and asymmetric
verification paths separate and follow PyJWT&amp;#39;s algorithm-selection guidance.&lt;/p&gt;
&lt;p&gt;### Fix status&lt;/p&gt;
&lt;p&gt;The fix is on `master` in commit `801cd12` (`fix: reject public JWK container
HMAC keys`). `HMACAlgorithm.prepare_key` now rejects public JWK members found in
objects, arrays, nested containers, BOM/UTF variants, and recursion-limit
inputs. It also recognizes escaped JSON member names without treating ordinary
string values as JWKs. Ordinary JSON secrets remain accepted byte-for-byte.&lt;/p&gt;
&lt;p&gt;The change was tested with focused regression tests and the full local tox
matrix. Available Python 3.9, 3.12, and 3.13 crypto/no-crypto suites, mypy,
package metadata, and coverage passed; unavailable interpreters were…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-w2cx-738m-mc7w</guid>
    </item>
  </channel>
</rss>
