CVE-2026-23990 json
Flux Operator Web UI Impersonation Bypass via Empty OIDC Claims
published 2026-01-21 9 mo ago modified 2026-09-10 1 mo ago also GHSA-4xh5-jcj2-ch8q , GO-2026-4351 , EUVD-2026-4140
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 38%
- public exploits
- 0
- none known
Summary
The Flux Operator is a Kubernetes CRD controller that manages the lifecycle of CNCF Flux CD and the ControlPlane enterprise distribution. Starting in version 0.36.0 and prior to version 0.40.0, a privilege escalation vulnerability exists in the Flux Operator Web UI authentication code that allows an attacker to bypass Kubernetes RBAC impersonation and execute API requests with the operator's service account privileges. In order to be vulnerable, cluster admins must configure the Flux Operator with an OIDC provider that issues tokens lacking the expected claims (e.g., `email`, `groups`), or configure custom CEL expressions that can evaluate to empty values. After OIDC token claims are processed through CEL expressions, there is no validation that the resulting `username` and `groups` values are non-empty. When both values are empty, the Kubernetes client-go library does not add impersonation headers to API requests, causing them to be executed with the flux-operator service account's credentials instead of the authenticated user's limited permissions. This can result in privilege escalation, data exposure, and/or information disclosure. Version 0.40.0 patches the issue.
Patch / fix
- go github.com/controlplaneio-fluxcd/flux-operator 0.40.0
- control-plane flux_operator 0.40.0
- govulncheck-vulndb openSUSE Leap 15.6 0.0.20260205T172317-150000.1.146.1
suse advisories SUSE-SU-2026:0403-1
- govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1
opensuse advisories openSUSE-SU-2026:21483-1
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 9 mo ago
Exploit prediction
0.44% chance of exploitation in the next 30 days, higher than 38% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/controlplaneio-fluxcd/flux-operator | >=0.36.0, <0.40.0 |
0.40.0 |
Affected products
- controlplaneio-fluxcd flux-operator
Classification
References
-
github.com
/controlplaneio-fluxcd/flux-operator/pull/610
web, issue-tracking, patch
-
github.com
/controlplaneio-fluxcd/flux-operator/commit/084540424f6de8ba5d88fb1fd1e8472ba29afd7e
web, patch
-
github.com
/controlplaneio-fluxcd/flux-operator/security/advisories/GHSA-4xh5-jcj2-ch8q
web, mitigation, vendor-advisory, advisory
-
github.com
/controlplaneio-fluxcd/flux-operator/releases/tag/v0.40.0
web, product, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2026-23990
advisory
-
github.com
/controlplaneio-fluxcd/flux-operator
package
Sources
- CVE List CVE-2026-23990
- GitHub Advisory GHSA-4xh5-jcj2-ch8q
- NVD CVE-2026-23990
- OSV GO-2026-4351
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.