CVE-2026-48524
PyJWT: PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
3.7
PyJWT: PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
CVE-2026-48524- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-460, CWE-755
- Updated
- 2026-11-02
EUVDEUVD-2026-32916
3.7
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
EUVD-2026-32916- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fhv5-28vv-h8m8
3.7
PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
[!NOTE] The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. Impact is reduced auth availability until the next successful fetch, not complete denial of service.
Summary
PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests.
Additionally, fetch_data() finally block clears the JWKS cache on network error.
Root Cause
jwt/jwks_client.py:172-198 - get_signing_key(kid) calls get_signing_keys(refresh=True) for unknown kids, bypassing TTL cache with no cooldown. jwt/jwks_client.py:120-122 - finally block writes None to cache on error, clearing valid data.
Impact
- DoS against JWKS endpoint (unlimited requests per invalid token)
- DoS against application (network I/O latency)
- Cascading failure (rate limiting clears cache, breaking legitimate auth)
Suggested Fix
- Add refresh cooldown (refuse refresh more than once per TTL period)
- Move cache write from finally to else block
Affected Versions
All versions with PyJWKClient (2.4.0 through 2.12.1)
- Record
GHSA-fhv5-28vv-h8m8- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-460, CWE-755
- Updated
- 2026-11-02
NVD
3.7
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
CVE-2026-48524- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-460, CWE-755
- Updated
- 2026-11-02
OSVBELL-CVE-2026-48524
3.7
- Record
BELL-CVE-2026-48524- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSV
3.7
PyJWT: PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
CVE-2026-48524- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-460, CWE-755
- Updated
- 2026-11-02
Show 16 moreShow less
OSVDEBIAN-CVE-2026-48524
3.7
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
DEBIAN-CVE-2026-48524- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVGHSA-fhv5-28vv-h8m8
3.7
PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
[!NOTE] The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. Impact is reduced auth availability until the next successful fetch, not complete denial of service.
Summary
PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests.
Additionally, fetch_data() finally block clears the JWKS cache on network error.
Root Cause
jwt/jwks_client.py:172-198 - get_signing_key(kid) calls get_signing_keys(refresh=True) for unknown kids, bypassing TTL cache with no cooldown. jwt/jwks_client.py:120-122 - finally block writes None to cache on error, clearing valid data.
Impact
- DoS against JWKS endpoint (unlimited requests per invalid token)
- DoS against application (network I/O latency)
- Cascading failure (rate limiting clears cache, breaking legitimate auth)
Suggested Fix
- Add refresh cooldown (refuse refresh more than once per TTL period)
- Move cache write from finally to else block
Affected Versions
All versions with PyJWKClient (2.4.0 through 2.12.1)
- Record
GHSA-fhv5-28vv-h8m8- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-460, CWE-755
- Updated
- 2026-11-02
OSVPYSEC-2026-177
3.7
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
PYSEC-2026-177- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-48524
3.7
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
UBUNTU-CVE-2026-48524- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVAZL-93027 No score
CVE-2026-48524 affecting package python-jwt for versions less than 2.13.0-1
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests. The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. This vulnerability is fixed in 2.13.0.
- Record
AZL-93027- Updated
- 2026-11-02
OSVCLSA-2026-1783299703 No score
TuxCare security update for pyjwt (4 CVEs)
TuxCare rebuilt pyjwt to address 4 CVEs. Fixed in 2.10.1.post2+tuxcare.
- Record
CLSA-2026-1783299703- Updated
- 2026-11-02
OSVCLSA-2026-1786944250 No score
TuxCare security update for pyjwt (2 CVEs)
TuxCare rebuilt pyjwt to address 2 CVEs. Fixed in 2.8.0.post3+tuxcare.
- Record
CLSA-2026-1786944250- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11024-1 No score
python311-PyJWT-2.13.0-1.1 on GA media
These are all security issues fixed in the python311-PyJWT-2.13.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11024-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21095-1 No score
Security update for python-PyJWT
This update for python-PyJWT fixes the following issues
- CVE-2026-48522:
PyJWKClientpasses URI arguments directly tourllib.request.urlopen()and allows for SSRF and token forgery (bsc#1266798). - CVE-2026-48523: verifier-side algorithm allow-list bypass when
jwt.decode()orjwt.decode_complete()are called with a PyJWK key (bsc#1266799). - CVE-2026-48524: unlimited processing of JWTs with unknown kid values by
PyJWKClient.get_signing_key()leads to unbounded JWKS endpoint requests and DoS (bsc#1266800). - CVE-2026-48525: unbounded Base64URL decoding of unused payload segment in
b64=falsedetached JWS allows for DoS (bsc#1266801). - CVE-2026-48526: no validation of use of JSON Web Keys in HMAC algorithm when decoding JSON Web Tokens allows for forged HS256 tokens (bsc#1266802).
- Record
openSUSE-SU-2026:21095-1- Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-48524 No score
CVE-2026-48524 in PyJWT - Patched by Root
Root has patched CVE-2026-48524 in the PyJWT package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-48524- Updated
- 2026-11-02
OSVSUSE-SU-2026:22138-1 No score
Security update for python-PyJWT
This update for python-PyJWT fixes the following issues
- CVE-2026-48522:
PyJWKClientpasses URI arguments directly tourllib.request.urlopen()and allows for SSRF and token forgery (bsc#1266798). - CVE-2026-48523: verifier-side algorithm allow-list bypass when
jwt.decode()orjwt.decode_complete()are called with a PyJWK key (bsc#1266799). - CVE-2026-48524: unlimited processing of JWTs with unknown kid values by
PyJWKClient.get_signing_key()leads to unbounded JWKS endpoint requests and DoS (bsc#1266800). - CVE-2026-48525: unbounded Base64URL decoding of unused payload segment in
b64=falsedetached JWS allows for DoS (bsc#1266801). - CVE-2026-48526: no validation of use of JSON Web Keys in HMAC algorithm when decoding JSON Web Tokens allows for forged HS256 tokens (bsc#1266802).
- Record
SUSE-SU-2026:22138-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22170-1 No score
Security update for python-PyJWT
This update for python-PyJWT fixes the following issues
- CVE-2026-48522:
PyJWKClientpasses URI arguments directly tourllib.request.urlopen()and allows for SSRF and token forgery (bsc#1266798). - CVE-2026-48523: verifier-side algorithm allow-list bypass when
jwt.decode()orjwt.decode_complete()are called with a PyJWK key (bsc#1266799). - CVE-2026-48524: unlimited processing of JWTs with unknown kid values by
PyJWKClient.get_signing_key()leads to unbounded JWKS endpoint requests and DoS (bsc#1266800). - CVE-2026-48525: unbounded Base64URL decoding of unused payload segment in
b64=falsedetached JWS allows for DoS (bsc#1266801). - CVE-2026-48526: no validation of use of JSON Web Keys in HMAC algorithm when decoding JSON Web Tokens allows for forged HS256 tokens (bsc#1266802).
- Record
SUSE-SU-2026:22170-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22220-1 No score
Security update for python-PyJWT
This update for python-PyJWT fixes the following issues
- CVE-2026-48522:
PyJWKClientpasses URI arguments directly tourllib.request.urlopen()and allows for SSRF and token forgery (bsc#1266798). - CVE-2026-48523: verifier-side algorithm allow-list bypass when
jwt.decode()orjwt.decode_complete()are called with a PyJWK key (bsc#1266799). - CVE-2026-48524: unlimited processing of JWTs with unknown kid values by
PyJWKClient.get_signing_key()leads to unbounded JWKS endpoint requests and DoS (bsc#1266800). - CVE-2026-48525: unbounded Base64URL decoding of unused payload segment in
b64=falsedetached JWS allows for DoS (bsc#1266801). - CVE-2026-48526: no validation of use of JSON Web Keys in HMAC algorithm when decoding JSON Web Tokens allows for forged HS256 tokens (bsc#1266802).
- Record
SUSE-SU-2026:22220-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22238-1 No score
Security update for python-PyJWT
This update for python-PyJWT fixes the following issues
- CVE-2026-48522:
PyJWKClientpasses URI arguments directly tourllib.request.urlopen()and allows for SSRF and token forgery (bsc#1266798). - CVE-2026-48523: verifier-side algorithm allow-list bypass when
jwt.decode()orjwt.decode_complete()are called with a PyJWK key (bsc#1266799). - CVE-2026-48524: unlimited processing of JWTs with unknown kid values by
PyJWKClient.get_signing_key()leads to unbounded JWKS endpoint requests and DoS (bsc#1266800). - CVE-2026-48525: unbounded Base64URL decoding of unused payload segment in
b64=falsedetached JWS allows for DoS (bsc#1266801). - CVE-2026-48526: no validation of use of JSON Web Keys in HMAC algorithm when decoding JSON Web Tokens allows for forged HS256 tokens (bsc#1266802).
- Record
SUSE-SU-2026:22238-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:2626-1 No score
Security update for python-PyJWT
This update for python-PyJWT fixes the following issues
- CVE-2026-48522:
PyJWKClientpasses URI arguments directly tourllib.request.urlopen()and allows for SSRF and token forgery (bsc#1266798). - CVE-2026-48523: verifier-side algorithm allow-list bypass when
jwt.decode()orjwt.decode_complete()are called with a PyJWK key (bsc#1266799). - CVE-2026-48524: unlimited processing of JWTs with unknown kid values by
PyJWKClient.get_signing_key()leads to unbounded JWKS endpoint requests and DoS (bsc#1266800). - CVE-2026-48525: unbounded Base64URL decoding of unused payload segment in
b64=falsedetached JWS allows for DoS (bsc#1266801). - CVE-2026-48526: no validation of use of JSON Web Keys in HMAC algorithm when decoding JSON Web Tokens allows for forged HS256 tokens (bsc#1266802).
- Record
SUSE-SU-2026:2626-1- Updated
- 2026-11-02
OSVUSN-8823-1 No score
pyjwt vulnerabilities
It was discovered that PyJWT incorrectly handled certain URIs when using PyJWKClient. A remote attacker could possibly use this issue to perform server-side request forgery (SSRF) or expose sensitive local files. This issue only affected Ubuntu 22.04 LTS, Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-48522)
It was discovered that PyJWT incorrectly verified cryptographic signatures when decoding tokens with PyJWK keys. A remote attacker could possibly use this issue to bypass signature verification and forge valid JSON Web Tokens. This issue only affected Ubuntu 26.04 LTS. (CVE-2026-48523)
It was discovered that PyJWT incorrectly handled unknown key identifiers in PyJWKClient. A remote attacker could possibly use this issue to cause PyJWT to make excessive network requests, resulting in a denial of service. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-48524)
It was discovered that PyJWT incorrectly handled payload decoding during detached JWS token verification. A remote attacker could possibly use this issue to cause PyJWT to consume excessive resources, resulting in a denial of service. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-48525)
It was discovered that PyJWT incorrectly validated JSON Web Keys when decoding tokens with both HMAC and asymmetric algorithms enabled. A remote attacker could possibly use this issue to forge valid tokens, resulting in an authentication bypass. (CVE-2026-48526)
- Record
USN-8823-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
pyjwtPyPI |
2.0.0 to 2.12.1 | 2.13.0 |
python-jwtAzure Linux:3 |
before 2.13.0-1 | 2.13.0-1 |
py3-jwtAlpaquita:25 |
2.10.1-r0 up to 2.13.0-r0 | 2.13.0-r0 |
py3-jwtAlpaquita:stream |
2.8.0-r1 up to 2.13.0-r0 | 2.13.0-r0 |
pyjwtTuxCare:PyPI From an advisory covering 4 CVEs |
2.10.1 up to 2.10.1.post2+tuxcare, plus listed versions 2.10.1.post1+tuxcare |
2.10.1.post2+tuxcare |
pyjwtTuxCare:PyPI From an advisory covering 2 CVEs |
2.8.0 up to 2.8.0.post3+tuxcare, plus listed versions 2.8.0.post1+tuxcare2.8.0.post2+tuxcare |
2.8.0.post3+tuxcare |
pyjwtDebian:12 |
All versions, plus listed versions 2.10.1-12.10.1-22.10.1-32.10.1-42.11.0-2 Show 8 moreShow less2.12.1-12.13.0-12.14.0-12.15.0-12.15.1-12.6.0-12.6.0-1+deb12u12.7.0-1 |
None known |
pyjwtDebian:13 |
All versions, plus listed versions 2.10.1-22.10.1-2+deb13u12.10.1-32.10.1-42.11.0-2 Show 5 moreShow less2.12.1-12.13.0-12.14.0-12.15.0-12.15.1-1 |
None known |
pyjwtDebian:14 |
before 2.13.0-1, plus listed versions 2.10.1-22.10.1-32.10.1-42.11.0-22.12.1-1 |
2.13.0-1 |
pyjwtPyPI |
2.0.0 up to 2.13.0, plus listed versions 2.0.12.1.02.10.02.10.12.11.0 Show 10 moreShow less2.12.02.12.12.2.02.3.02.4.02.5.02.6.02.7.02.8.02.9.0 |
2.13.0 |
Show 30 moreShow less
| Package | Affected | Fixed |
|---|---|---|
pyjwtPyPI |
before 2.13.0, plus listed versions 0.1.10.1.20.1.30.1.40.1.5 Show 45 moreShow less0.1.60.1.70.1.80.1.90.2.00.2.10.2.30.3.00.3.10.3.20.4.00.4.10.4.20.4.31.0.01.0.11.1.01.3.01.4.01.4.11.4.21.5.01.5.11.5.21.5.31.6.01.6.11.6.31.6.41.7.01.7.12.0.02.0.0a12.0.0a22.0.12.1.02.10.02.10.12.11.02.12.02.12.12.2.02.3.02.4.02.5.0 |
2.13.0 |
PyJWTRoot:PyPI |
before 2.9.0+aikido.6 | 2.9.0+aikido.62.8.0+aikido.52.5.0+aikido.52.12.1+aikido.32.4.0+aikido.62.10.1+aikido.72.12.0+aikido.42.4.0+aikido.72.12.0+aikido.52.8.0+aikido.62.12.1+aikido.42.5.0+aikido.62.12.1+aikido.5 |
python-PyJWTSUSE:Linux Micro 6.1 From an advisory covering 5 CVEs |
before 2.12.1-slfo.1.1_2.1 | 2.12.1-slfo.1.1_2.1 |
python-PyJWTSUSE:Linux Enterprise Server 16.0 From an advisory covering 5 CVEs |
before 2.12.1-160000.2.1 | 2.12.1-160000.2.1 |
python-PyJWTSUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 5 CVEs |
before 2.12.1-160000.2.1 | 2.12.1-160000.2.1 |
python-PyJWTSUSE:Linux Micro 6.2 From an advisory covering 5 CVEs |
before 2.12.1-160000.2.1 | 2.12.1-160000.2.1 |
python-PyJWTSUSE:Linux Micro 6.0 From an advisory covering 5 CVEs |
before 2.9.0-3.1 | 2.9.0-3.1 |
python-PyJWTSUSE:Linux Enterprise Module for Public Cloud 15 SP4 From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Module for Python 3 15 SP7 From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
python-PyJWTSUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 5 CVEs |
before 2.8.0-150400.8.13.1 | 2.8.0-150400.8.13.1 |
pyjwtUbuntu:24.04:LTS |
before 2.7.0-1ubuntu0.2, plus listed versions 2.7.0-12.7.0-1ubuntu0.1 |
2.7.0-1ubuntu0.2 |
pyjwtUbuntu:25.10 |
All versions, plus listed versions 2.10.1-22.10.1-2ubuntu0.1 |
None known |
pyjwtUbuntu:26.04:LTS |
before 2.10.1-4ubuntu1.1, plus listed versions 2.10.1-22.10.1-32.10.1-3build12.10.1-42.10.1-4ubuntu1 |
2.10.1-4ubuntu1.1 |
pyjwtUbuntu:Pro:16.04:LTS From an advisory covering 5 CVEs |
before 1.3.0-1ubuntu0.1+esm2, plus listed versions 1.0.0-0ubuntu11.3.0-11.3.0-1ubuntu0.11.3.0-1ubuntu0.1+esm1 |
1.3.0-1ubuntu0.1+esm2 |
pyjwtUbuntu:Pro:18.04:LTS From an advisory covering 5 CVEs |
before 1.5.3+ds1-1ubuntu0.1+esm2, plus listed versions 1.4.2-1.11.5.3+ds1-11.5.3+ds1-1ubuntu0.11.5.3+ds1-1ubuntu0.1+esm1 |
1.5.3+ds1-1ubuntu0.1+esm2 |
pyjwtUbuntu:Pro:20.04:LTS From an advisory covering 5 CVEs |
before 1.7.1-2ubuntu2.1+esm2, plus listed versions 1.7.0-21.7.1-11.7.1-2ubuntu11.7.1-2ubuntu21.7.1-2ubuntu2.11.7.1-2ubuntu2.1+esm1 |
1.7.1-2ubuntu2.1+esm2 |
pyjwtUbuntu:22.04:LTS From an advisory covering 5 CVEs |
before 2.3.0-1ubuntu0.4, plus listed versions 1.7.1-2ubuntu22.1.0-12.3.0-12.3.0-1ubuntu0.12.3.0-1ubuntu0.22.3.0-1ubuntu0.3 |
2.3.0-1ubuntu0.4 |
pyjwtUbuntu:24.04:LTS From an advisory covering 5 CVEs |
before 2.7.0-1ubuntu0.2, plus listed versions 2.7.0-12.7.0-1ubuntu0.1 |
2.7.0-1ubuntu0.2 |
pyjwtUbuntu:26.04:LTS From an advisory covering 5 CVEs |
before 2.10.1-4ubuntu1.1, plus listed versions 2.10.1-22.10.1-32.10.1-3build12.10.1-42.10.1-4ubuntu1 |
2.10.1-4ubuntu1.1 |
python-PyJWTopenSUSE:Tumbleweed From an advisory covering 5 CVEs |
before 2.13.0-1.1 | 2.13.0-1.1 |
python-PyJWTopenSUSE:Leap 16.0 From an advisory covering 5 CVEs |
before 2.12.1-160000.2.1 | 2.12.1-160000.2.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-48524 is a low vulnerability (CVSS 3.7) in Jpadilla Pyjwt, published May 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.40%, the 34th percentile. Fixed in pyjwt 2.13.0.
References
github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8
nvd.nist.gov/vuln/detail/CVE-2026-48524
github.com/pypa/advisory-database/tree/main/vulns/pyjwt/PYSEC-2026-177.yaml
github.com/github/advisory-database/pull/8522
github.com/advisories/GHSA-fhv5-28vv-h8m8
docs.bell-sw.com/security/cves/CVE-2026-48524
Show 25 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48524.json
security-tracker.debian.org/tracker/CVE-2026-48524
github.com/jpadilla/pyjwt
suse.com/support/update/announcement/2026/suse-su-202622138-1
bugzilla.suse.com/1266798
bugzilla.suse.com/1266799
bugzilla.suse.com/1266800
bugzilla.suse.com/1266801
bugzilla.suse.com/1266802
suse.com/security/cve/CVE-2026-48522
suse.com/security/cve/CVE-2026-48523
suse.com/security/cve/CVE-2026-48524
suse.com/security/cve/CVE-2026-48525
suse.com/security/cve/CVE-2026-48526
suse.com/support/update/announcement/2026/suse-su-202622170-1
suse.com/support/update/announcement/2026/suse-su-202622220-1
suse.com/support/update/announcement/2026/suse-su-202622238-1
suse.com/support/update/announcement/2026/suse-su-20262626-1
ubuntu.com/security/CVE-2026-48524
cve.org/CVERecord?id=CVE-2026-48524
ubuntu.com/security/notices/USN-8823-1
ubuntu.com/security/CVE-2026-48522
ubuntu.com/security/CVE-2026-48523
ubuntu.com/security/CVE-2026-48525
ubuntu.com/security/CVE-2026-48526
Left out here: 4 versions. The JSON record has them.