Read the docs
TI-2022-13072 Aliases CVE-2022-31027GHSA-r7v4-jwx9-wx43

Authorization Bypass Through User-Controlled Key when using CILogonOAuthenticator in oauthenticator

Priority LOW 29CWE-639Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Security bypass
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub. Impact type from CWE-639.

Summary

OAuthenticator is an OAuth token library for the JupyerHub login handler. CILogonOAuthenticator is provided by the OAuthenticator package, and lets users log in to a JupyterHub via CILogon. This is primarily used to restrict a JupyterHub only to users of a given institute. The allowed_idps configuration trait of CILogonOAuthenticator is documented to be a list of domains that indicate the institutions whose users are authorized to access this JupyterHub. This authorization is validated by ensuring that the *email* field provided to us by CILogon has a *domain* that matches one of the domains listed in `allowed_idps`.If `allowed_idps` contains `berkeley.edu`, you might expect only users with valid current credentials provided by University of California, Berkeley to be able to access the JupyterHub. However, CILogonOAuthenticator does *not* verify which provider is used by the user to login, only the email address provided. So a user can login with a GitHub account that has email set to `<something>@berkeley.edu`, and that will be treated exactly the same as someone logging in using the UC Berkeley official Identity Provider. The patch fixing this issue makes a *breaking change* in how `allowed_idps` is interpreted. It's no longer a list of domains, but configuration representing the `EntityID` of the IdPs that are allowed, picked from the [list maintained by CILogon](https://cilogon.org/idplist/). Users are advised to upgrade.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00475 41st percentileScored 2026-11-07
Fix Fixed oauthenticator (jupyterhub): 15.0.0oauthenticator (PyPI): 15.0.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
jupyterhuboauthenticatorbefore 15.0.015.0.0Patch availableCNA
—oauthenticator (PyPI)before 15.0.015.0.0Patch availableGHSA-r7v4-jwx9-wx43
  • oauthenticator Vendorjupyterhub Affected before 15.0.0 Fixed in 15.0.0 Patch available CNA
  • oauthenticator (PyPI) Vendor— Affected before 15.0.0 Fixed in 15.0.0 Patch available GHSA-r7v4-jwx9-wx43

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:jupyter:oauthenticator:*:*:*:*:*:*:*:*before 15.0.0Vulnerablejupyterlab
  • cpe:2.3:a:jupyter:oauthenticator:*:*:*:*:*:*:*:* Versions before 15.0.0 Vulnerable ·jupyterlab

Remediation

  • Fix · CNA oauthenticator (jupyterhub) Fixed in 15.0.0
  • Fix · GHSA-r7v4-jwx9-wx43 oauthenticator (PyPI) Fixed in 15.0.0 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2022-31027
  2. 2026-10-03 Alias added: GHSA-r7v4-jwx9-wx43

References

  • TI-2025-23499 Jupyter Remote Desktop Proxy makes TigerVNC accessible via the network and not just via a UNIX socket as intended CVSS 4.0CRITICAL 9.0
  • TI-2023-10877 JupyterHub's LTI13Authenticator: JWT signature not validated CVSS 3.1CRITICAL 10.0
  • TI-2021-16545 Remote code execution in Binderhub CVSS 3.1CRITICAL 9.8
  • TI-2021-18033 Improper Access Control in jupyterhub-firstuseauthenticator CVSS 3.1CRITICAL 9.8
  • TI-2021-16546 Code injection in nbgitpuller CVSS 3.1CRITICAL 9.6
  • TI-2024-18755 Jupyter Server Proxy's Websocket Proxying does not require authentication CVSS 3.1CRITICAL 9.8
See all 23 →

Sources