{"cve":"CVE-2026-49265","nvd":{"published":"2026-10-13T16:17:20.713","modified":"2026-10-16T20:04:29.760","status":"Deferred","description":"OAuthLib is an implementation of the OAuth request-signing logic for Python 3.6+. From 3.0.0 until 4.0.0, OAuthLib's PKCE checks in oauthlib/oauth2/rfc6749/grant_types/authorization_code.py compare attacker-supplied code_verifier values with stored challenges using ordinary string equality in code_challenge_method_plain and code_challenge_method_s256. Because the comparison can return after a length difference or the first mismatching character, repeated token endpoint measurements can reveal common-prefix timing information that could potentially allow recovery of the code_verifier, unauthorized access-token acquisition, and account takeover. Practical exploitation requires an intercepted, single-use authorization code and enough measurements to overcome real-world network noise; the local timing benchmark does not establish practical remote account takeover, so the weakness remains a defense-in-depth concern. This issue is fixed in version 4.0.0.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N","score":6.8},"cwes":["CWE-208"],"references":["https://github.com/oauthlib/oauthlib/commit/74664d3fe037a354e180e305135c6bab1747a6b0","https://github.com/oauthlib/oauthlib/pull/963","https://github.com/oauthlib/oauthlib/releases/tag/v4.0.0","https://github.com/oauthlib/oauthlib/security/advisories/GHSA-xpv3-w29h-x7cv","https://github.com/pypa/advisory-database/tree/main/vulns/oauthlib/PYSEC-2026-4114.yaml"],"products":[],"source":"nvd","synced_at":"2026-10-19T22:58:52.678897993+00:00"},"epss":{"cve":"CVE-2026-49265","score":0.00242,"percentile":0.1524,"date":"2026-10-25"},"kev":null,"osv":[{"id":"GHSA-xpv3-w29h-x7cv","url":"https://osv.dev/vulnerability/GHSA-xpv3-w29h-x7cv","summary":"Oauthlib: Timing Attack Vulnerability in PKCE code_verifier Comparison (CWE-208)","modified":"2026-10-13T16:00:32.097492414Z","packages":[{"ecosystem":"PyPI","name":"oauthlib","purl":"pkg:pypi/oauthlib","ranges":[">=3.0.0 <4.0.0"],"fixed":["4.0.0"]}]},{"id":"PYSEC-2026-4114","url":"https://osv.dev/vulnerability/PYSEC-2026-4114","summary":"Oauthlib: Timing Attack Vulnerability in PKCE code_verifier Comparison (CWE-208)","modified":"2026-10-01T17:45:10.985894602Z","packages":[{"ecosystem":"PyPI","name":"oauthlib","purl":"pkg:pypi/oauthlib","ranges":[">=3.0.0 <4.0.0"],"fixed":["4.0.0"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}