CVE-2023-5408

7.2 HIGH

📋 TL;DR

CVE-2023-5408 is a privilege escalation vulnerability in OpenShift's Kubernetes API server node restriction admission plugin. A remote attacker who can modify node role labels could redirect workloads from control plane and etcd nodes to worker nodes, gaining broader cluster access. This affects OpenShift clusters with the node restriction admission plugin enabled.

💻 Affected Systems

Products:
  • OpenShift Container Platform
Versions: OpenShift 4.12.0 through 4.12.18, 4.13.0 through 4.13.5, 4.14.0 through 4.14.0-rc.4
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Requires node restriction admission plugin to be enabled (default in OpenShift).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attacker gains full administrative control over the Kubernetes cluster, allowing them to deploy malicious pods, exfiltrate sensitive data, disrupt cluster operations, or pivot to other systems.

🟠

Likely Case

Attacker gains elevated privileges to access worker node resources, potentially compromising applications, stealing credentials, or deploying unauthorized workloads.

🟢

If Mitigated

With proper network segmentation, RBAC controls, and monitoring, impact is limited to specific namespaces or workloads, with quick detection and containment.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access to modify node labels and knowledge of Kubernetes/OpenShift internals.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: OpenShift 4.12.19, 4.13.6, 4.14.1 and later

Vendor Advisory: https://access.redhat.com/security/cve/CVE-2023-5408

Restart Required: Yes

Instructions:

1. Update OpenShift cluster using 'oc adm upgrade' or OpenShift Console. 2. Apply patches for affected versions. 3. Restart API server components after patching.

🔧 Temporary Workarounds

Disable Node Restriction Admission Plugin

linux

Temporarily disable the vulnerable admission plugin (not recommended for production).

oc edit kubeapiserver cluster
Modify spec.unsupportedConfigOverrides to disable NodeRestriction

Restrict Node Label Modification

linux

Use RBAC to restrict who can modify node labels.

oc create clusterrole no-node-label-modify --verb=update,patch --resource=nodes
oc adm policy add-cluster-role-to-user no-node-label-modify -z default

🧯 If You Can't Patch

  • Implement strict RBAC controls to limit who can modify node labels and roles.
  • Deploy network policies to isolate control plane nodes and monitor for suspicious label changes.

🔍 How to Verify

Check if Vulnerable:

Check OpenShift version with 'oc version' or 'oc get clusterversion'. If version is between affected ranges, system is vulnerable.

Check Version:

oc version

Verify Fix Applied:

Verify patch is applied by checking cluster version is 4.12.19+, 4.13.6+, or 4.14.1+ and that node restriction admission plugin is functioning.

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized node label modifications in API server logs
  • Unexpected workload scheduling to worker nodes from control plane

Network Indicators:

  • Unusual API calls to modify node resources
  • Traffic from worker nodes accessing control plane services

SIEM Query:

source="openshift-api-server" AND (message="Node label update" OR message="Unauthorized node modification")

🔗 References

📤 Share & Export