LiveActive security incident?Get immediate response
CVE Record

CVE-2022-31027: Authorization Bypass Through User-Controlled Key when using CILogonOAuthenticator in oauthenticator

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.

MediumCVSS 4.2Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

Some JupyterHub sites used CILogon to admit only people from selected institutions. In vulnerable oauthenticator versions, the check trusted the email domain reported by CILogon instead of verifying the actual identity provider. This could let an unintended user pass institutional access controls if their email domain matched an allowed domain.

Executive priority

Treat this as a moderate access-control issue for research or institutional JupyterHub environments. Prioritize sites where JupyterHub gates sensitive notebooks, data, or compute resources for a specific institution. The main business risk is unauthorized access despite appearing to enforce institutional login.

Technical view

CVE-2022-31027 affects JupyterHub oauthenticator before 15.0.0 when using CILogonOAuthenticator. The allowed_idps setting was interpreted as email domains and authorization was based on the email field domain, not the CILogon IdP used. The fix changes allowed_idps to represent allowed IdP EntityIDs from CILogon's maintained list.

Likely exposure

Exposure is likely limited to JupyterHub deployments using oauthenticator <15.0.0 with CILogonOAuthenticator and allowed_idps for institutional restriction. Deployments not using CILogonOAuthenticator, or not relying on allowed_idps for access control, are not indicated as affected by the provided sources.

Exploitation context

The CVE is not listed in KEV, and the provided sources do not report active exploitation. The advisory describes an authorization-bypass scenario requiring a login path where the user can present an email domain matching an allowed institution without using that institution's official IdP.

Researcher notes

The root issue is CWE-639: authorization based on user-controlled or insufficiently trusted identity data. The patch is behavior-changing, so validation should include configuration review and expected-login testing. Evidence is strongest for CILogonOAuthenticator allowed_idps usage; the bundle does not support broader oauthenticator impact claims.

Mitigation direction

  • Upgrade oauthenticator to version 15.0.0 or later.
  • Review the breaking allowed_idps configuration change before upgrading.
  • Configure allowed IdPs by CILogon EntityID, not email domain.
  • Use CILogon's IdP list to select approved EntityIDs.
  • Check current vendor guidance for migration details.

Validation and detection

  • Inventory JupyterHub deployments using oauthenticator and CILogonOAuthenticator.
  • Identify any oauthenticator versions earlier than 15.0.0.
  • Review allowed_idps configuration for legacy domain-based entries.
  • Confirm authorization checks rely on approved IdP EntityIDs.
  • Review authentication records for unexpected IdP and email-domain combinations, if logged.
Prepared
Confidence
high
Sources
4

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-639: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Credential and access behavior lookup

The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
description · low confidence lookup

Privilege behavior lookup

The CVE wording references privilege impact, so privilege escalation and authorization behavior review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2022-31027 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
4.2 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
2Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
4.2CVSS 3.1MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N1.62.5Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

4.2Medium
CVSS 3.1 vector shape for CVE-2022-31027Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
jupyterhuboauthenticator< 15.0.0Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-639 · source CWE mapping

Authorization Bypass Through User-Controlled Key

Authorization Bypass Through User-Controlled Key represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.