/

CVE-2026-82026

Severity:

HIGH RISK

(8.8)

Missing Authorization (CWE-862) in Radar WebSocket

CVE-2026-82026

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Remote Code Execution

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Radar contains a missing authorization vulnerability in the /api/local-terminal WebSocket endpoint. An unauthenticated or authenticated attacker may use the endpoint to spawn a privileged shell and execute commands with Radar's process credentials, including its kubeconfig, when the endpoint is reachable.

Radar contains a missing authorization vulnerability in the /api/local-terminal WebSocket endpoint. An unauthenticated or authenticated attacker may use the endpoint to spawn a privileged shell and execute commands with Radar's process credentials, including its kubeconfig, when the endpoint is reachable.

Affected context

The issue occurs in Radar deployments exposing the /api/local-terminal WebSocket endpoint. Risk is present when endpoint access is governed only by a runtime-mode check rather than authenticated, role-based authorization. The local-terminal disable setting may not provide effective protection if the handler does not enforce the setting consistently before creating a shell.

The issue occurs in Radar deployments exposing the /api/local-terminal WebSocket endpoint. Risk is present when endpoint access is governed only by a runtime-mode check rather than authenticated, role-based authorization. The local-terminal disable setting may not provide effective protection if the handler does not enforce the setting consistently before creating a shell.

Exploit preconditions

  • Attack surface: The /api/local-terminal WebSocket endpoint
  • Required access: Network reachability; the vulnerable behavior may permit unauthenticated access
  • Trigger point: A WebSocket connection to the local-terminal handler
  • Why exploitation is possible: The handler relies on runtime-mode logic without enforcing an appropriate authorization decision before spawning a shell
  • Execution context: The shell inherits Radar's process privileges, environment, and potentially its kubeconfig
  • Attack surface: The /api/local-terminal WebSocket endpoint
  • Required access: Network reachability; the vulnerable behavior may permit unauthenticated access
  • Trigger point: A WebSocket connection to the local-terminal handler
  • Why exploitation is possible: The handler relies on runtime-mode logic without enforcing an appropriate authorization decision before spawning a shell
  • Execution context: The shell inherits Radar's process privileges, environment, and potentially its kubeconfig

Why this happens

The underlying flaw is an authorization decision that checks whether a runtime mode permits terminal functionality but does not verify whether the requesting principal has the required role or permission. This maps to CWE-862, Missing Authorization, because a sensitive administrative operation is reachable without an effective access-control check. Treating a configuration or operational-mode check as a substitute for per-request authorization creates an insecure pattern for privileged WebSocket actions.

The underlying flaw is an authorization decision that checks whether a runtime mode permits terminal functionality but does not verify whether the requesting principal has the required role or permission. This maps to CWE-862, Missing Authorization, because a sensitive administrative operation is reachable without an effective access-control check. Treating a configuration or operational-mode check as a substitute for per-request authorization creates an insecure pattern for privileged WebSocket actions.

Potential impact

  • An attacker may execute arbitrary commands on the Radar host
  • An attacker could access data available to Radar's process
  • The exposed shell may use Radar's kubeconfig and enable Kubernetes API access
  • An attacker may modify workloads, secrets, or cluster resources allowed by those credentials
  • The incident could result in data loss, service disruption, or lateral movement
  • An attacker may execute arbitrary commands on the Radar host
  • An attacker could access data available to Radar's process
  • The exposed shell may use Radar's kubeconfig and enable Kubernetes API access
  • An attacker may modify workloads, secrets, or cluster resources allowed by those credentials
  • The incident could result in data loss, service disruption, or lateral movement

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the sensitive

endpoint and reducing the privileges available to the service.

Common defensive patterns include:

  • Require authentication and explicit role- or permission-based authorization before establishing a terminal session
  • Enforce authorization independently of runtime-mode checks and configuration flags
  • Deny access by default when authorization context is missing, invalid, or ambiguous
  • Remove or disable administrative terminal functionality in deployments that do not require it
  • Run Radar with a dedicated, least-privileged identity and narrowly scoped Kubernetes permissions
  • Avoid injecting unnecessary kubeconfig files, tokens, or process credentials into shell environments
  • Apply network policies and gateway controls that limit access to administrative WebSocket endpoints

Mitigation generally focuses on enforcing authorization at the sensitive

endpoint and reducing the privileges available to the service.

Common defensive patterns include:

  • Require authentication and explicit role- or permission-based authorization before establishing a terminal session
  • Enforce authorization independently of runtime-mode checks and configuration flags
  • Deny access by default when authorization context is missing, invalid, or ambiguous
  • Remove or disable administrative terminal functionality in deployments that do not require it
  • Run Radar with a dedicated, least-privileged identity and narrowly scoped Kubernetes permissions
  • Avoid injecting unnecessary kubeconfig files, tokens, or process credentials into shell environments
  • Apply network policies and gateway controls that limit access to administrative WebSocket endpoints

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings where WebSocket handlers invoke shell or process-spawn APIs without nearby authorization checks
  • Code review signals showing runtime flags or mode checks used in place of identity and role validation
  • Tests that exercise sensitive endpoints with anonymous, low-privilege, and unauthorized identities
  • Access logs showing unexpected WebSocket connections to /api/local-terminal or shell-session creation
  • Policy checks requiring authentication, authorization, and least-privilege service identities for administrative endpoints
  • Automated security review tools configured to identify missing access-control enforcement on high-impact handlers

Organizations can look for:

  • Static-analysis findings where WebSocket handlers invoke shell or process-spawn APIs without nearby authorization checks
  • Code review signals showing runtime flags or mode checks used in place of identity and role validation
  • Tests that exercise sensitive endpoints with anonymous, low-privilege, and unauthorized identities
  • Access logs showing unexpected WebSocket connections to /api/local-terminal or shell-session creation
  • Policy checks requiring authentication, authorization, and least-privilege service identities for administrative endpoints
  • Automated security review tools configured to identify missing access-control enforcement on high-impact handlers

Sources

SourceLink
github.comgithub.com/skyhook-io/radar/pull/1534
github.comgithub.com/skyhook-io/radar/pull/1537
github.comgithub.com/skyhook-io/radar/releases/tag/v1.12.2
vulncheck.comvulncheck.com/advisories/radar-missing-authorization-via-api-local-terminal

Frequently asked

questions

Yes, if the vulnerable WebSocket endpoint is reachable over the network. The

attacker may not need valid credentials when the endpoint does not enforce

authentication and authorization.

Network access to /api/local-terminal may be sufficient. Where an

authentication layer exists, the exact requirement depends on whether the

application correctly validates the user's role and permission.

Enforce deny-by-default, role-based authorization before creating the terminal

session, and treat runtime-mode checks only as an additional availability

control rather than an authorization mechanism.

Protect administrative WebSocket endpoints with centralized access-control

middleware, test unauthorized paths explicitly, and run the service with

narrowly scoped credentials and no unnecessary shell capabilities.

Yes, if the vulnerable WebSocket endpoint is reachable over the network. The

attacker may not need valid credentials when the endpoint does not enforce

authentication and authorization.

Network access to /api/local-terminal may be sufficient. Where an

authentication layer exists, the exact requirement depends on whether the

application correctly validates the user's role and permission.

Enforce deny-by-default, role-based authorization before creating the terminal

session, and treat runtime-mode checks only as an additional availability

control rather than an authorization mechanism.

Protect administrative WebSocket endpoints with centralized access-control

middleware, test unauthorized paths explicitly, and run the service with

narrowly scoped credentials and no unnecessary shell capabilities.

Find out what's already
exploitable in your codebase.