{"schema_version":1,"title":"pyjwt (PyPI) vulnerabilities","summary":"Junglewise Threat Intelligence has tracked 10 vulnerabilities in pyjwt (PyPI): 0 in the last 7 days and 1 in the last 90 days, 0 of them critical and 0 exploited in the wild. The most recent, CVE-2024-53861, was published on 7 July 2026.","url":"https://junglewise.ai/threats/technologies/pypi-pyjwt","json_url":"https://junglewise.ai/threats/technologies/pypi-pyjwt.json","publisher":"Junglewise Threat Intelligence","license":"CC-BY-4.0","license_url":"https://creativecommons.org/licenses/by/4.0/","attribution":"Junglewise Threat Intelligence, https://junglewise.ai/threats/technologies/pypi-pyjwt","sources":"NVD, GitHub Security Advisories, OSV, the CISA Known Exploited Vulnerabilities catalog, FIRST EPSS and vendor advisories","kind":"technology","counts":{"high":2,"all_time":10,"critical":0,"exploited":0,"last_7_days":0,"last_30_days":0,"last_90_days":1,"last_365_days":7},"latest":[{"cve":"CVE-2024-53861","cvss":3.1,"epss":0.0083,"slug":"cve-2024-53861-pyjwt-issuer-field-partial-matches-allowed","title":"PYSEC-2026-1814 - PyJWT Issuer field partial matches allowed","severity":"low","exploited":false,"published_at":"2026-07-07T14:34:46.000573+00:00","url":"https://junglewise.ai/threats/cve-2024-53861-pyjwt-issuer-field-partial-matches-allowed"},{"cve":"CVE-2026-48526","cvss":7.4,"epss":0.0043,"slug":"cve-2026-48526-pyjwt-algorithm-confusion-via-json-web-keys","title":"PyJWT algorithm confusion via JSON Web Keys","severity":"high","exploited":false,"published_at":"2026-05-28T16:16:29.657+00:00","url":"https://junglewise.ai/threats/cve-2026-48526-pyjwt-algorithm-confusion-via-json-web-keys"},{"cve":"CVE-2026-48525","cvss":5.3,"epss":0.0042,"slug":"cve-2026-48525-pyjwt-denial-of-service-in-detached-jws-verification","title":"PyJWT Denial of Service in detached JWS verification","severity":"medium","exploited":false,"published_at":"2026-05-28T16:16:29.533+00:00","url":"https://junglewise.ai/threats/cve-2026-48525-pyjwt-denial-of-service-in-detached-jws-verification"},{"cve":"CVE-2026-48524","cvss":3.7,"epss":0.0032,"slug":"cve-2026-48524-pyjwt-denial-of-service-via-unbounded-jwks-endpoint-requests","title":"PyJWT denial of service via unbounded JWKS endpoint requests","severity":"low","exploited":false,"published_at":"2026-05-28T16:16:29.403+00:00","url":"https://junglewise.ai/threats/cve-2026-48524-pyjwt-denial-of-service-via-unbounded-jwks-endpoint-requests"},{"cve":"CVE-2026-48523","cvss":5.4,"epss":0.0017,"slug":"cve-2026-48523-pyjwt-algorithm-allow-list-bypass-in-pyjwk-verification","title":"PyJWT algorithm allow-list bypass in PyJWK verification","severity":"medium","exploited":false,"published_at":"2026-05-28T16:16:29.28+00:00","url":"https://junglewise.ai/threats/cve-2026-48523-pyjwt-algorithm-allow-list-bypass-in-pyjwk-verification"},{"cve":"CVE-2026-48522","cvss":4.2,"epss":0.0022,"slug":"cve-2026-48522-pyjwt-ssrf-and-token-forgery-in-pyjwkclient-via-uri-schemes","title":"PyJWT SSRF and token forgery in PyJWKClient via URI schemes","severity":"medium","exploited":false,"published_at":"2026-05-28T16:16:29.15+00:00","url":"https://junglewise.ai/threats/cve-2026-48522-pyjwt-ssrf-and-token-forgery-in-pyjwkclient-via-uri-schemes"},{"cve":"CVE-2026-32597","cvss":7.5,"epss":0.0028,"slug":"cve-2026-32597-pyjwt-insufficient-verification-of-critical-header-extensions","title":"PyJWT insufficient verification of critical header extensions","severity":"high","exploited":false,"published_at":"2026-03-13T19:55:09.5+00:00","url":"https://junglewise.ai/threats/cve-2026-32597-pyjwt-insufficient-verification-of-critical-header-extensions"},{"cve":"CVE-2025-45768","cvss":3.1,"epss":0.0017,"slug":"cve-2025-45768-pysec-2025-183-pyjwt-v2-10-1-was-discovered-to-contain-weak","title":"PYSEC-2025-183 - pyjwt v2.10.1 was discovered to contain weak encryption. NOTE: this is disputed by the Supplier because the key length is chosen by the appl","severity":"low","exploited":false,"published_at":"2025-07-31T21:15:27.32+00:00","url":"https://junglewise.ai/threats/cve-2025-45768-pysec-2025-183-pyjwt-v2-10-1-was-discovered-to-contain-weak"},{"cve":"CVE-2022-29217","cvss":3.1,"epss":0.0136,"slug":"cve-2022-29217-key-confusion-through-non-blocklisted-public-key-formats","title":"PYSEC-2022-202 - PyJWT is a Python implementation of RFC 7519. PyJWT supports multiple different JWT signing algorithms. With JWT, an attacker submitting the","severity":"low","exploited":false,"published_at":"2022-05-24T15:15:00+00:00","url":"https://junglewise.ai/threats/cve-2022-29217-key-confusion-through-non-blocklisted-public-key-formats"},{"cve":"CVE-2017-11424","cvss":3,"epss":0.018,"slug":"cve-2017-11424-pyjwt-vulnerable-to-key-confusion-attacks","title":"PYSEC-2017-24 - In PyJWT 1.5.0 and below the `invalid_strings` check in `HMACAlgorithm.prepare_key` does not account for all PEM encoded public keys. Specif","severity":"low","exploited":false,"published_at":"2017-08-24T16:29:00+00:00","url":"https://junglewise.ai/threats/cve-2017-11424-pyjwt-vulnerable-to-key-confusion-attacks"}],"weekly":[{"week":"2026-07-06","critical":0,"exploited":0,"vulnerabilities":1},{"week":"2026-07-13","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-07-20","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-07-27","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-08-03","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-08-10","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-08-17","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-08-24","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-08-31","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-07","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-14","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-21","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-28","critical":0,"exploited":0,"vulnerabilities":0}],"related":[{"name":"tensorflow (PyPI)","slug":"pypi-tensorflow","vulnerabilities":428,"url":"https://junglewise.ai/threats/technologies/pypi-tensorflow"},{"name":"tensorflow-cpu (PyPI)","slug":"tensorflow-cpu","vulnerabilities":424,"url":"https://junglewise.ai/threats/technologies/tensorflow-cpu"},{"name":"tensorflow-gpu (PyPI)","slug":"tensorflow-gpu","vulnerabilities":421,"url":"https://junglewise.ai/threats/technologies/tensorflow-gpu"},{"name":"open-webui (PyPI)","slug":"open-webui","vulnerabilities":177,"url":"https://junglewise.ai/threats/technologies/open-webui"},{"name":"Django (PyPI)","slug":"django","vulnerabilities":172,"url":"https://junglewise.ai/threats/technologies/django"},{"name":"apache-airflow (PyPI)","slug":"apache-airflow","vulnerabilities":152,"url":"https://junglewise.ai/threats/technologies/apache-airflow"},{"name":"plone (PyPI)","slug":"pypi-plone","vulnerabilities":101,"url":"https://junglewise.ai/threats/technologies/pypi-plone"},{"name":"praisonai (PyPI)","slug":"pypi-praisonai","vulnerabilities":86,"url":"https://junglewise.ai/threats/technologies/pypi-praisonai"},{"name":"exiv2 (PyPI)","slug":"exiv2","vulnerabilities":85,"url":"https://junglewise.ai/threats/technologies/exiv2"},{"name":"nltk (PyPI)","slug":"nltk","vulnerabilities":83,"url":"https://junglewise.ai/threats/technologies/nltk"},{"name":"mlflow (PyPI)","slug":"mlflow","vulnerabilities":82,"url":"https://junglewise.ai/threats/technologies/mlflow"},{"name":"pillow (PyPI)","slug":"pillow","vulnerabilities":79,"url":"https://junglewise.ai/threats/technologies/pillow"}],"technology":{"hub":true,"name":"pyjwt (PyPI)","slug":"pypi-pyjwt","vendor":{"name":"PyPI","slug":"pypi","url":"https://junglewise.ai/threats/vendors/pypi"},"aliases":[],"description":"Python library for encoding and decoding JSON Web Tokens (JWT) for authentication and information exchange.","url":"https://junglewise.ai/threats/technologies/pypi-pyjwt"},"most_severe":[{"cve":"CVE-2026-32597","cvss":7.5,"epss":0.0028,"slug":"cve-2026-32597-pyjwt-insufficient-verification-of-critical-header-extensions","title":"PyJWT insufficient verification of critical header extensions","severity":"high","exploited":false,"published_at":"2026-03-13T19:55:09.5+00:00","url":"https://junglewise.ai/threats/cve-2026-32597-pyjwt-insufficient-verification-of-critical-header-extensions"},{"cve":"CVE-2026-48526","cvss":7.4,"epss":0.0043,"slug":"cve-2026-48526-pyjwt-algorithm-confusion-via-json-web-keys","title":"PyJWT algorithm confusion via JSON Web Keys","severity":"high","exploited":false,"published_at":"2026-05-28T16:16:29.657+00:00","url":"https://junglewise.ai/threats/cve-2026-48526-pyjwt-algorithm-confusion-via-json-web-keys"},{"cve":"CVE-2026-48523","cvss":5.4,"epss":0.0017,"slug":"cve-2026-48523-pyjwt-algorithm-allow-list-bypass-in-pyjwk-verification","title":"PyJWT algorithm allow-list bypass in PyJWK verification","severity":"medium","exploited":false,"published_at":"2026-05-28T16:16:29.28+00:00","url":"https://junglewise.ai/threats/cve-2026-48523-pyjwt-algorithm-allow-list-bypass-in-pyjwk-verification"},{"cve":"CVE-2026-48525","cvss":5.3,"epss":0.0042,"slug":"cve-2026-48525-pyjwt-denial-of-service-in-detached-jws-verification","title":"PyJWT Denial of Service in detached JWS verification","severity":"medium","exploited":false,"published_at":"2026-05-28T16:16:29.533+00:00","url":"https://junglewise.ai/threats/cve-2026-48525-pyjwt-denial-of-service-in-detached-jws-verification"},{"cve":"CVE-2026-48522","cvss":4.2,"epss":0.0022,"slug":"cve-2026-48522-pyjwt-ssrf-and-token-forgery-in-pyjwkclient-via-uri-schemes","title":"PyJWT SSRF and token forgery in PyJWKClient via URI schemes","severity":"medium","exploited":false,"published_at":"2026-05-28T16:16:29.15+00:00","url":"https://junglewise.ai/threats/cve-2026-48522-pyjwt-ssrf-and-token-forgery-in-pyjwkclient-via-uri-schemes"},{"cve":"CVE-2026-48524","cvss":3.7,"epss":0.0032,"slug":"cve-2026-48524-pyjwt-denial-of-service-via-unbounded-jwks-endpoint-requests","title":"PyJWT denial of service via unbounded JWKS endpoint requests","severity":"low","exploited":false,"published_at":"2026-05-28T16:16:29.403+00:00","url":"https://junglewise.ai/threats/cve-2026-48524-pyjwt-denial-of-service-via-unbounded-jwks-endpoint-requests"},{"cve":"CVE-2022-29217","cvss":3.1,"epss":0.0136,"slug":"cve-2022-29217-key-confusion-through-non-blocklisted-public-key-formats","title":"PYSEC-2022-202 - PyJWT is a Python implementation of RFC 7519. PyJWT supports multiple different JWT signing algorithms. With JWT, an attacker submitting the","severity":"low","exploited":false,"published_at":"2022-05-24T15:15:00+00:00","url":"https://junglewise.ai/threats/cve-2022-29217-key-confusion-through-non-blocklisted-public-key-formats"},{"cve":"CVE-2024-53861","cvss":3.1,"epss":0.0083,"slug":"cve-2024-53861-pyjwt-issuer-field-partial-matches-allowed","title":"PYSEC-2026-1814 - PyJWT Issuer field partial matches allowed","severity":"low","exploited":false,"published_at":"2026-07-07T14:34:46.000573+00:00","url":"https://junglewise.ai/threats/cve-2024-53861-pyjwt-issuer-field-partial-matches-allowed"},{"cve":"CVE-2025-45768","cvss":3.1,"epss":0.0017,"slug":"cve-2025-45768-pysec-2025-183-pyjwt-v2-10-1-was-discovered-to-contain-weak","title":"PYSEC-2025-183 - pyjwt v2.10.1 was discovered to contain weak encryption. NOTE: this is disputed by the Supplier because the key length is chosen by the appl","severity":"low","exploited":false,"published_at":"2025-07-31T21:15:27.32+00:00","url":"https://junglewise.ai/threats/cve-2025-45768-pysec-2025-183-pyjwt-v2-10-1-was-discovered-to-contain-weak"},{"cve":"CVE-2017-11424","cvss":3,"epss":0.018,"slug":"cve-2017-11424-pyjwt-vulnerable-to-key-confusion-attacks","title":"PYSEC-2017-24 - In PyJWT 1.5.0 and below the `invalid_strings` check in `HMACAlgorithm.prepare_key` does not account for all PEM encoded public keys. Specif","severity":"low","exploited":false,"published_at":"2017-08-24T16:29:00+00:00","url":"https://junglewise.ai/threats/cve-2017-11424-pyjwt-vulnerable-to-key-confusion-attacks"}],"generated_at":"2026-09-28T03:07:00.154823+00:00"}