---
id: "CVE-2026-62284"
kind: "vulnerability"
aliases: ["CVE-2026-62284"]
title: "OSAC operator: Kubeconfig Secrets let attackers run commands in console proxy"
severity: "high"
cvss: 8.6
epss: null
exploited: false
status: "open"
category: "infrastructure"
products: []
ecosystems: []
tags: ["console-proxy", "infrastructure", "kubernetes", "openshift", "osac"]
not_affected_if: ["local-vm-mode"]
published_at: "2026-10-30T20:17:11+00:00"
first_seen_at: "2026-10-30T20:25:38+00:00"
updated_at: "2026-10-30T20:26:27+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-62284", "first_seen_at": "2026-10-30T20:25:38+00:00"}]
---

# OSAC operator: Kubeconfig Secrets let attackers run commands in console proxy

The OSAC operator's console-proxy parses kubeconfig Secrets without sanitizing them, so anyone who can create or modify a labeled Secret in a namespace the proxy can read can make it execute an arbitrary process. The same Secret can point the proxy at attacker-chosen server addresses, enabling server-side request forgery from the proxy pod.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check whether the console-proxy runs in `remote` or `auto` VM cluster mode; `local`-only mode is not affected.
- Find Secrets labeled `osac.openshift.io/remote-cluster-kubeconfig: "true"` and the RoleBindings that grant the proxy Secret read access in those namespaces.
- Confirm the OSAC operator build is revision `8220502` or otherwise predates commit `7e4222b`.

## Fix

- Credential-plugin execution path: patched in commit `7e4222b`.
- Server-address SSRF path: not addressed by that patch; no fix stated in the sources.

## Timeline

- 2026-10-30T20:25:38+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-62284

## From the sources

OSAC operator is a Kubernetes operator. In the affected revision identified as 8220502, the `console-proxy` `RemoteConfigResolver` parses Kubernetes Secret kubeconfig data with `clientcmd.RESTConfigFromKubeConfig` without sanitizing the resulting `rest.Config`. An attacker who can create or modify a Secret labeled `osac.openshift.io/remote-cluster-kubeconfig`: "true" in a namespace where the proxy's RoleBinding grants Secret read access can supply `users[].user.exec`. When `rest.TransportFor` builds the HTTP transport for an upstream WebSocket connection, client-go invokes that exec credential plugin, spawning an arbitrary process as the osac-`console-proxy` service account inside the pod. Attacker-controlled `clusters[].server` also enables server-side request forgery from the proxy pod. Remote and auto VM cluster modes are affected, with auto the default; exclusively `local` mode does not read kubeconfig Secrets and is unaffected. The credential-plugin execution path is patched in commit 7e4222b; that patch does not address the described server-address SSRF path.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
