Bug 2515215 (CVE-2026-19706) - CVE-2026-19706 openshift/installer: OpenShift Installer: Unconditional CSR approval during Agent-Based Installation (ABI) bootstrap
Summary: CVE-2026-19706 openshift/installer: OpenShift Installer: Unconditional CSR ap...
Keywords:
Status: NEW
Alias: CVE-2026-19706
Deadline: 2026-11-09
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-08-13 10:35 UTC by OSIDB Bzimport
Modified: 2026-11-09 15:10 UTC (History)
22 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-08-13 10:35:08 UTC
During an OpenShift Agent-Based Installation (ABI), the bootstrap node runs approve-csr.service, which executes a script that automatically approves every pending CertificateSigningRequest (CSR) without validating the requested identity.

Note: Kubernetes CSRs are how nodes and components obtain TLS client certificates. The Common Name (CN) in the certificate determines the identity — e.g. system:admin grants full cluster-admin privileges.

Attack scenario - An attacker with network access to the Kubernetes API during the bootstrap window could:
1. Attacker sends a crafted header to the bootstrap node, gets the Ignition file, extracts a kubeconfig with limited privileges (enough to create/retrieve CSRs).
2. Submit a CSR with CN=system:admin.
3. The approve-csr script approves and signs the CSR without any validation checks.
4. The signed certificate is returned to the attacker.
5. The attacker builds a kubeconfig using that certificate which results in full cluster-admin access.

Note: This is only exploitable during the bootstrap phase of ABI installs, which is a narrow time window. The attacker must have network access to the bootstrap node's API server during that period.


Note You need to log in before you can comment on or make changes to this bug.