Read the docs
TI-2020-16071 Aliases CVE-2020-26250GHSA-384w-5v3f-q499

Base class whitelist configuration ignored in OAuthenticator

Priority LOW 30CWE-863Published · Updated

Key facts

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

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

Summary

OAuthenticator is an OAuth login mechanism for JupyterHub. In oauthenticator from version 0.12.0 and before 0.12.2, the deprecated (in jupyterhub 1.2) configuration `Authenticator.whitelist`, which should be transparently mapped to `Authenticator.allowed_users` with a warning, is instead ignored by OAuthenticator classes, resulting in the same behavior as if this configuration has not been set. If this is the only mechanism of authorization restriction (i.e. no group or team restrictions in configuration) then all authenticated users will be allowed. Provider-based restrictions, including deprecated values such as `GitHubOAuthenticator.org_whitelist` are **not** affected. All users of OAuthenticator 0.12.0 and 0.12.1 with JupyterHub 1.2 (JupyterHub Helm chart 0.10.0-0.10.5) who use the `admin.whitelist.users` configuration in the jupyterhub helm chart or the `c.Authenticator.whitelist` configuration directly. Users of other deprecated configuration, e.g. `c.GitHubOAuthenticator.team_whitelist` are **not** affected. If you see a log line like this and expect a specific list of allowed usernames: "[I 2020-11-27 16:51:54.528 JupyterHub app:1717] Not using allowed_users. Any authenticated user will be allowed." you are likely affected. Updating oauthenticator to 0.12.2 is recommended. A workaround is to replace the deprecated `c.Authenticator.whitelist = ...` with `c.Authenticator.allowed_users = ...`. If any users have been authorized during this time who should not have been, they must be deleted via the API or admin interface, per the referenced documentation.

Why it matters now

EPSS 0.01132 66th percentileScored 2026-11-07
Fix Fixed oauthenticator (jupyterhub): 0.12.2oauthenticator (PyPI): 0.12.2

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
jupyterhuboauthenticator0.12.0 to before 0.12.20.12.2Patch availableCNA
—oauthenticator (PyPI)0.12.0 to before 0.12.20.12.2Patch availableGHSA-384w-5v3f-q499
  • oauthenticator Vendorjupyterhub Affected 0.12.0 to before 0.12.2 Fixed in 0.12.2 Patch available CNA
  • oauthenticator (PyPI) Vendor— Affected 0.12.0 to before 0.12.2 Fixed in 0.12.2 Patch available GHSA-384w-5v3f-q499

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:jupyter:oauthenticator:*:*:*:*:*:*:*:*0.12.0 to before 0.12.2Vulnerablejupyterlab
  • cpe:2.3:a:jupyter:oauthenticator:*:*:*:*:*:*:*:* Versions 0.12.0 to before 0.12.2 Vulnerable ·jupyterlab

Remediation

  • Fix · CNA oauthenticator (jupyterhub) Fixed in 0.12.2
  • Fix · GHSA-384w-5v3f-q499 oauthenticator (PyPI) Fixed in 0.12.2 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2020-26250
  2. 2026-10-03 Alias added: GHSA-384w-5v3f-q499

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