Skip to main content
Vulnerability Database/CVE-2026-91923

CVE-2026-91923: KubeSphere SSRF Vulnerability

CVE-2026-91923 is an SSRF vulnerability in KubeSphere through version 4.1.3 that lets authenticated attackers access internal services and steal credentials. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-91923 Overview

CVE-2026-91923 is a Server-Side Request Forgery (SSRF) vulnerability [CWE-918] affecting KubeSphere through version 4.1.3. The flaw resides in the git credential verification endpoint, which accepts caller-supplied URLs without applying allowlist restrictions or destination validation. Authenticated attackers can direct the endpoint at arbitrary internal services and abuse the error response handling to exfiltrate basic-auth credentials stored in Kubernetes Secrets across any namespace. The issue is tracked publicly through the VulnCheck KubeSphere SSRF Advisory and KubeSphere Issue #6653.

Critical Impact

Authenticated attackers can pivot to internal cluster services and exfiltrate basic-auth credentials from Secrets in any namespace, expanding blast radius across the KubeSphere-managed environment.

Affected Products

  • KubeSphere versions up to and including 4.1.3
  • The git credential verification endpoint served by pkg/kapis/resources/v1alpha2/handler.go
  • The git model implementation in pkg/models/git/git.go

Discovery Timeline

  • 2026-09-15 - CVE-2026-91923 published to NVD
  • 2026-09-15 - Last updated in NVD database

Technical Details for CVE-2026-91923

Vulnerability Analysis

The vulnerability exists in KubeSphere's git credential verification API, which is intended to validate that supplied credentials can authenticate against a remote git repository. The endpoint accepts a URL parameter from the caller and issues an outbound HTTP request without validating the destination against an allowlist. Because the endpoint is reachable by any principal holding the standard git-verification permission granted through globalroles.yaml, an authenticated but low-privileged attacker can direct requests at arbitrary hosts.

The handler also references Kubernetes Secrets by name and namespace to resolve basic-auth credentials for the git request. Combined with the unvalidated URL, an attacker can force KubeSphere to attach credentials from a Secret in one namespace to a request pointed at an attacker-controlled or internal endpoint. The endpoint's error response handling then reflects the outbound request outcome, providing an exfiltration channel for the supplied credentials.

Root Cause

The root cause is missing input validation on caller-supplied URLs in the git credential verification handler [CWE-918]. There is no allowlist enforcement, scheme restriction, hostname resolution guard, or private-IP block on the outbound request path. The handler additionally performs cross-namespace Secret resolution using caller-supplied identifiers, which broadens the credential exposure surface beyond the caller's own namespace.

Attack Vector

Exploitation requires network reachability to the KubeSphere API and a valid authenticated session with the default git verification permission. The attacker submits a crafted request to the git credential verification endpoint that specifies an arbitrary URL and references a Secret in a target namespace. KubeSphere resolves the Secret, issues an outbound request carrying the basic-auth credentials, and returns response data through the endpoint's error handling path. See the KubeSphere Handler Go File and KubeSphere Git Model Go File for the relevant code paths.

No verified public exploit code is available. Refer to the VulnCheck KubeSphere SSRF Advisory for additional technical detail.

Detection Methods for CVE-2026-91923

Indicators of Compromise

  • Requests to the KubeSphere git credential verification API where the target URL points to internal RFC1918 addresses, localhost, 169.254.169.254, or cluster-internal service DNS names.
  • API calls that reference Secrets in namespaces the calling user does not otherwise interact with.
  • Anomalous egress connections originating from KubeSphere control-plane pods to unexpected external hosts.

Detection Strategies

  • Enable KubeSphere and Kubernetes API server audit logging and alert on git verification requests containing non-standard schemes, private IPs, or metadata service hostnames.
  • Correlate git verification API activity with Secret read events in the audit log to identify cross-namespace credential access patterns.
  • Baseline outbound network flows from KubeSphere pods and flag deviations that coincide with git verification API calls.

Monitoring Recommendations

  • Ingest Kubernetes and KubeSphere audit logs into a centralized analytics platform for retention and query.
  • Monitor authentication and authorization events on the KubeSphere API for accounts making repeated git verification calls with varying URL parameters.
  • Track egress traffic from the KubeSphere namespace and alert on connections to internal management interfaces or cloud metadata endpoints.

How to Mitigate CVE-2026-91923

Immediate Actions Required

  • Restrict access to the git credential verification endpoint by tightening the global role defined in KubeSphere GlobalRoles YAML so only trusted operators retain the permission.
  • Audit existing Secrets in all namespaces for basic-auth credentials and rotate any that may have been exposed to unauthorized principals.
  • Apply Kubernetes NetworkPolicies to constrain egress from KubeSphere pods to only the destinations required for legitimate git operations.

Patch Information

At the time of publication, no fixed KubeSphere release is referenced in the NVD entry. Track KubeSphere Issue #6653 and the KubeSphere GitHub Repository for upstream remediation, and consult the VulnCheck KubeSphere SSRF Advisory for updates on affected and fixed versions.

Workarounds

  • Remove the git verification permission from the default authenticated user role and grant it only to specific administrative roles.
  • Deploy an egress proxy or NetworkPolicy that restricts KubeSphere outbound HTTP traffic to an allowlist of approved git hosts.
  • Block access from KubeSphere pods to cloud instance metadata endpoints such as 169.254.169.254 to prevent metadata credential theft via SSRF.
bash
# Example NetworkPolicy restricting KubeSphere egress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: kubesphere-egress-restrict
  namespace: kubesphere-system
spec:
  podSelector: {}
  policyTypes:
    - Egress
  egress:
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
            except:
              - 169.254.169.254/32
              - 10.0.0.0/8
              - 172.16.0.0/12
              - 192.168.0.0/16
      ports:
        - protocol: TCP
          port: 443

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.