CVE-2026-114614
Low · 2.6CVSS
2.6
EPSS
0.3%
Published
Oct 22, 2026
CISA due date
—
Cloudanix analysis
A library used to build secure login systems had a small flaw that could let certain web addresses bypass a safety check meant to keep traffic encrypted, but the problem is narrow and does not let attackers steal accounts or create fake logins.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Other
- Component
- Library
- Class
- Open Redirect
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The is_secure_transport() function in authlib/common/security.py performs a textual prefix match on the userinfo component of a URL to decide loopback exemptions instead of inspecting the parsed host, allowing a crafted URL with an external host to be treated as loopback and accepted without TLS enforcement.
Why it matters to the business
Organizations using Authlib for OAuth or OpenID Connect servers face a narrow risk of cleartext URL handling in logout or metadata flows, which could expose redirect data in transit; the low likelihood and limited impact mean operational disruption is minimal but still requires prompt patching to maintain transport security guarantees.
How an attack unfolds
An attacker supplies a malicious URL containing a loopback-looking userinfo prefix to an OIDC RP-Initiated Logout registration or authorization-server metadata validation endpoint; because the flawed prefix check passes, the library accepts the URL without requiring TLS, resulting in cleartext redirection or acceptance while still respecting exact redirect URI matching.
How to fix it
Upgrade Authlib to version 1.8.0 or later, which corrects the is_secure_transport() implementation; until the upgrade is complete, review all call sites that rely on is_secure_transport() and enforce explicit TLS checks or restrict URL inputs to trusted sources.
How to confirm the fix worked
After upgrade, confirm the new version string appears in the installed package metadata, then exercise the previously vulnerable URL patterns against is_secure_transport() and verify that only true loopback hosts (after proper parsing) are exempted from TLS requirements.
Typical attack path
- Identify an Authlib-based OIDC relying party or authorization server that accepts dynamic client registration or metadata URLs.
- Craft a URL whose userinfo begins with a loopback address but whose host component points to an attacker-controlled non-loopback system.
- Submit the URL to the affected endpoint (e.g., RP-Initiated Logout or metadata validation).
- Observe acceptance of the URL without TLS enforcement, enabling cleartext communication for that specific flow.
How to detect it
Review application logs for calls to is_secure_transport() that accept URLs containing userinfo prefixes resembling loopback addresses; examine any OIDC registration or metadata endpoints for incoming URLs that were processed without TLS enforcement.
What your security team should do
- Prioritize upgrade to Authlib 1.8.0 across all OAuth/OpenID Connect deployments within the next 30 days given the recent publication.
- Audit code and configuration that passes user-supplied URLs to Authlib metadata or logout handlers.
- Add runtime logging around is_secure_transport() decisions until the patched version is deployed.
- Monitor EPSS and exploit maturity indicators; no active exploitation has been observed to date.
The record
Authlib is a Python library which builds OAuth and OpenID Connect servers. From 0.13 until 1.8.0, authlib.common.security.is_secure_transport() uses a textual prefix comparison for loopback HTTP exemptions, so a URL whose userinfo begins with a loopback host can be accepted even when its parsed host is an external non-loopback system. An external party able to supply a URL to OIDC RP-Initiated Logout registration, authorization-server metadata validation, or another call site can bypass the TLS-required guard and cause cleartext redirection or acceptance of cleartext endpoints. The issue does not bypass redirect URI exact matching and does not by itself forge tokens or authenticate users. The vulnerable authlib.common.security.is_secure_transport() implementation in authlib/common/security.py misinterprets the userinfo component before OIDC RP-Initiated Logout dynamic client registration and other consumers enforce transport security. This issue is fixed in version 1.8.0.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-107020 An issue in the activity.LoadLinkLaterActivity component of FeedEx / Handy News Reader… CWE-601
- CVE-2026-118425 A flaw was found in the secure-redirect-uris-enforcer client policy of Keycloak, an… CWE-601
- CVE-2026-118656 Echo is a Go web framework. CWE-601
- CVE-2026-118658 Echo is a Go web framework. CWE-601
- CVE-2026-111031 The Welcart e-Commerce WordPress plugin before 2.12.6 does not validate a user-supplied… CWE-601
- CVE-2026-117553 Umbraco CMS before 17.7.2 and 18.2.2 contains an authentication bypass vulnerability that… CWE-601
- CVE-2026-116578 Tornado is a Python web framework and asynchronous networking library. CWE-601
- CVE-2026-115537 A weakness has been identified in gedelumbung HospitalManagement up to… CWE-601