Vulnerability · CVE-2026-49265
Oauthlib: Timing Attack Vulnerability in PKCE code_verifier Comparison (CWE-208)
Published Sep 29, 2026 · catalog updated Oct 13, 2026 · Oauthlib: Timing Attack Vulnerability
Check if you run it
No confirmed exploitation is on record for CVE-2026-49265. EPSS is 0.38%. Act only if a listed version of Oauthlib: Timing Attack Vulnerability is installed.
Gaps on this record
- The stored product name is a package slug. The name on this page is taken from the title (Oauthlib: Timing Attack Vulnerability).
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
- Severity
- Medium6.8
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.38%
- Remediation
- Advisory link
- Affected products
- PyPI oauthlib
## Summary A timing side-channel vulnerability exists in the PKCE (RFC 7636) implementation of the Authorization Code Grant flow. The function uses Python's standard operator for string comparison instead of a constant-time comparison function, potentially allowing timing-based attacks. ## Affected Component - File: - Functions: , - Vulnerability Type: CWE-208 (Observable Timing Discrepancy) ## Technical Details Python's operator uses short-circuit evaluation when comparing strings: 1. Returns immediately if lengths differ 2. Compares characters left-to-right, stopping at first mismatch This means comparison time varies linearly with the length of the common prefix between the attacker-supplied verifier and the stored challenge, creating a measurable timing oracle. ## Proof of Concept Tested locally against oauthlib source (network jitter eliminated to isolate pure Python execution time): | Input | Result | Time (10M iterations) | |---|---|---| | Wrong first char ( + *49) | Fast reject | 0.34106s | | 49 chars correct ( *49 + ) | Deep compare | 0.37847s | | **Difference** | | **0.03741s** | The ~37ms delta over 10M iterations corresponds to nanosecond-level differences per call, which are statistically exploitable under controlled conditions. ## Attack Scenario 1. Attacker intercepts via Custom URI Scheme Hijacking 2. PKCE blocks token request — attacker lacks 3. Attacker sends repeated requests to endpoint measuring response times 4. Using timing oracle, attacker recovers character by character 5. Attacker obtains Access Token → Account Takeover > **Note:** Practical exploitability is limited due to the single-use nature of > authorization codes and real-world network noise. However, the vulnerable > pattern should be corrected as a defense-in-depth measure. ## Recommended Fix Replace with for constant-time comparison: cr: Elvin Latifli
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- PyPI oauthlib3.0.0 → 4.0.0
How to fix CVE-2026-49265
Recommended remediation
A patch or advisory reference is linked. Open the original publisher for availability by product version.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-49265. EPSS is 0.38%. Act only if a listed version of Oauthlib: Timing Attack Vulnerability is installed.
Which versions are affected?
Compare what you have installed with 3.0.0 → 4.0.0. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-208. EPSS 0.38%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Sep 29, 2026 · Catalog
Detected
## Summary A timing side-channel vulnerability exists in the PKCE (RFC 7636) implementation of the Authorization Code Grant flow. The function uses Python's standard operator for string comparison instead of a constant-time comparison function, potentially allowing timing-based attacks. ## Affected Component - File: - Functions: , - Vulnerability Type: CWE-208 (Observable Timing Discrepancy) ## Te
Oct 13, 2026 · Catalog
Fix available
PyPI oauthlib 3.0.0 → 4.0.0
Oct 13, 2026 · GitHub Advisory Database
Fix available
oauthlib fixed in 4.0.0
Oct 13, 2026 · GitHub Advisory Database
Fix available
oauthlib fixed in 4.0.0
Oct 13, 2026 · Catalog
Updated
## Summary A timing side-channel vulnerability exists in the PKCE (RFC 7636) implementation of the Authorization Code Grant flow. The function uses Python's standard operator for string comparison instead of a constant-time comparison function, potentially allowing timing-based attacks. ## Affected Component - File: - Functions: , - Vulnerability Type: CWE-208 (Observable Timing Discrepancy) ## Te
Sources
- CVE.orgVulnerability recordCVE-2026-49265
Official CVE identifier
cve.org - FIRST EPSSExploitation probabilityCVE-2026-49265
30-day exploitation probability 0.4%
first.org - GitHub Advisory DatabasePackage advisoryGHSA-xpv3-w29h-x7cv
GitHub Advisory Database record mirrored by OSV.
github.com - OpenSSF OSV / OSV ScannerPackage advisoryGHSA-xpv3-w29h-x7cv
Oauthlib: Timing Attack Vulnerability in PKCE code_verifier Comparison (CWE-208)
osv.dev
References
Freshness
Last verified in this catalog Oct 18, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.