<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-30T23:12:16.686099+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/brew-bbot-cve-2026-102269</id>
    <title>BREW-bbot-CVE-2026-102269 — PyJWT: Non-canonical signature segments enable raw-token revocation bypass</title>
    <updated>2026-09-30T23:12:16.718574+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Homebrew: bbot</p>
<p>## Summary</p>
<p>PyJWT 2.13.0 accepts compact JWS signature segments containing characters that
are not in the Base64URL alphabet. Appending `!!!!` to a valid signature does
not change the decoded signature bytes or authenticated claims, but it changes
the serialized token and its SHA-256 hash. An application that indexes logout
or revocation state by the raw token therefore rejects the logged-out token and
accepts its no-key alternate serialization.</p>
<p>This report separates two issues: permissive compact-JWS decoding is the
library behavior, while using raw serialized JWT text as a security identity is
a dangerous application composition. A `jti`-indexed control blocks both
representations.</p>
<p>## Affected Version</p>
<p>Confirmed with PyJWT 2.13.0 on CPython 3.13. The mutation changes only the
signature segment and requires no signing key.</p>
<p>## End-to-End Reproduction</p>
<p>```bash
.venv-research/bin/python 06-practical-testing/revocation-bypass-lab.py
```</p>
<p>The loopback-only lab performs:</p>
<p>1. Issue a valid HS256 admin token.
2. Access `/protected` successfully.
3. Log out the canonical token and store `SHA256(raw_token)`.
4. Confirm canonical replay returns HTTP 401.
5. Append `!!!!` to only the signature segment.
6. Confirm the mutated token has the same verified claims and signature bytes,
   a different raw hash, and receives HTTP 200.
7. Repeat with `jti`-indexed revocation and confirm both forms return HTTP 401.</p>
<p>Observed statuses for raw-token revocation were `200 -&gt; logout -&gt; 401` for th…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/brew-bbot-cve-2026-102269"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-102269</id>
    <title>fkie_cve-2026-102269</title>
    <updated>2026-09-30T23:12:16.718709+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, PyJWT signature segment is affected because signature segment decoding accepts characters outside the canonical Base64URL representation. This occurs when non-Base64URL characters are appended to a valid compact JWS signature segment. As a result, base64url_decode produces the same signature bytes for different serialized segments. Consequently, raw-token revocation checks can fail to recognize an equivalent modified token. This issue is fixed in version 2.14.0.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-102269"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-hxm8-2xgr-2p9m</id>
    <title>GHSA-hxm8-2xgr-2p9m — PyJWT: Non-canonical signature segments enable raw-token revocation bypass</title>
    <updated>2026-09-30T23:12:16.718745+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: PyJWT</p>
<p>## Summary</p>
<p>PyJWT 2.13.0 accepts compact JWS signature segments containing characters that
are not in the Base64URL alphabet. Appending `!!!!` to a valid signature does
not change the decoded signature bytes or authenticated claims, but it changes
the serialized token and its SHA-256 hash. An application that indexes logout
or revocation state by the raw token therefore rejects the logged-out token and
accepts its no-key alternate serialization.</p>
<p>This report separates two issues: permissive compact-JWS decoding is the
library behavior, while using raw serialized JWT text as a security identity is
a dangerous application composition. A `jti`-indexed control blocks both
representations.</p>
<p>## Affected Version</p>
<p>Confirmed with PyJWT 2.13.0 on CPython 3.13. The mutation changes only the
signature segment and requires no signing key.</p>
<p>## End-to-End Reproduction</p>
<p>```bash
.venv-research/bin/python 06-practical-testing/revocation-bypass-lab.py
```</p>
<p>The loopback-only lab performs:</p>
<p>1. Issue a valid HS256 admin token.
2. Access `/protected` successfully.
3. Log out the canonical token and store `SHA256(raw_token)`.
4. Confirm canonical replay returns HTTP 401.
5. Append `!!!!` to only the signature segment.
6. Confirm the mutated token has the same verified claims and signature bytes,
   a different raw hash, and receives HTTP 200.
7. Repeat with `jti`-indexed revocation and confirm both forms return HTTP 401.</p>
<p>Observed statuses for raw-token revocation were `200 -&gt; logout -&gt; 401` for th…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-hxm8-2xgr-2p9m"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/msrc_cve-2026-102269</id>
    <title>msrc_CVE-2026-102269 — PyJWT: Non-canonical signature segments enable raw-token revocation bypass</title>
    <updated>2026-09-30T23:12:16.718803+00:00</updated>
    <content>msrc_CVE-2026-102269</content>
    <link href="https://db.gcve.eu/vuln/msrc_cve-2026-102269"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ubuntu-cve-2026-102269</id>
    <title>UBUNTU-CVE-2026-102269</title>
    <updated>2026-09-30T23:12:16.718820+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Ubuntu:Pro:16.04:LTS: pyjwt, Ubuntu:Pro:18.04:LTS: pyjwt, Ubuntu:Pro:20.04:LTS: pyjwt, Ubuntu:22.04:LTS: pyjwt, Ubuntu:24.04:LTS: pyjwt, Ubuntu:26.04:LTS: pyjwt</p>
<p>PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, PyJWT signature segment is affected because signature segment decoding accepts characters outside the canonical Base64URL representation. This occurs when non-Base64URL characters are appended to a valid compact JWS signature segment. As a result, base64url_decode produces the same signature bytes for different serialized segments. Consequently, raw-token revocation checks can fail to recognize an equivalent modified token. This issue is fixed in version 2.14.0.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ubuntu-cve-2026-102269"/>
  </entry>
</feed>
