Skip to content

GHSA-gc2p-g4fg-29vh CVE-2019-11243 GO-2025-3645

Kubernetes did not effectively clear service account credentials

High Go
Severity
8.1 / 10
High · CVSS 3.1
Exploit chance (EPSS)
1.49%
Chance of exploitation in the next 30 days. Higher than 74.13% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-212 Improper Removal of Sensitive Information Before Storage or Transfer
CWE-271 Privilege Dropping / Lowering Errors
Fix
1.12.5
Upgrade k8s.io/kubernetes to this version or later

Description

In Kubernetes v1.12.0-v1.12.4 and v1.13.0, the rest.AnonymousClientConfig() method returns a copy of the provided config, with credentials removed (bearer token, username/password, and client certificate/key data). In the affected versions, rest.AnonymousClientConfig() did not effectively clear service account credentials loaded using rest.InClusterConfig()

Affected versions

Go

PackageVulnerableFixed in
k8s.io/kubernetes
>= 1.12.0, < 1.12.5
1.12.5
k8s.io/kubernetes
>= 1.13.0, < 1.13.1
1.13.1
k8s.io/kubernetes
>= 1.12.0, < 1.12.5
>= 1.13.0, < 1.13.1
1.12.5
1.13.1

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

k8s.io/kubernetes Go → 1.12.5

go
go get k8s.io/kubernetes@v1.12.5 && go mod tidy

Severity breakdown

CVSS 3.1 8.1

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Weakness

CWE-212: Improper Removal of Sensitive Information Before Storage or Transfer

The product stores, transfers, or shares a resource that contains sensitive information, but it does not properly remove that information before the product makes the resource available to unauthorized actors.

How to prevent it
  • Requirements: Clearly specify which information should be regarded as private or sensitive, and require that the product offers functionality that allows the user to cleanse the sensitive information from the resource before it is published or exported to other parties.
  • Architecture and Design: Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
  • Implementation, Operation: Some tools can automatically analyze documents to redact, strip, or "sanitize" private information, although some human review might be necessary. Tools may vary in terms of which document formats can be processed. When calling an external program to automatically generate or convert documents, invoke the program with any available options that avoid generating sensitive metadata. Some formats have well-defined fields that could contain private data, such as Exchangeable image file format (Exif), which can contain potentially sensitive metadata such as geolocation, date, and time [REF-1515] [REF-1516].
  • Implementation: Use naming conventions and strong types to make it easier to spot when sensitive data is being used. When creating structures, objects, or other complex entities, separate the sensitive and non-sensitive data as much as possible.
  • Implementation: Avoid errors related to improper resource shutdown or release (CWE-404), which may leave the sensitive data within the resource if it is in an incomplete state.

CWE-271: Privilege Dropping / Lowering Errors

The product does not drop privileges before passing control of a resource to an actor that does not have those privileges.

How to prevent it
  • Architecture and Design: Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
  • Architecture and Design, Operation: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
  • Architecture and Design: Consider following the principle of separation of privilege. Require multiple conditions to be met before permitting access to a system resource.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-r6j8-c6r2-37rr
kube-controller-manager is vulnerable to half-blind Server Side Request Forgery through in-tree Portworx StorageClass
Medium Also affects k8s.io/kubernetes
GHSA-4x4m-3c2p-qppc
Kubernetes Nodes can delete themselves by adding an OwnerReference
Medium Also affects k8s.io/kubernetes
GHSA-hj2p-8wj8-pfq4
kubernetes allows nodes to bypass dynamic resource allocation authorization checks
Low Also affects k8s.io/kubernetes
GO-2025-3547
Kubernetes kube-apiserver Vulnerable to Race Condition
Low Also affects k8s.io/kubernetes
GHSA-3wgm-2gw2-vh5m
Kubernetes GitRepo Volume Inadvertent Local Repository Access
Medium Also affects k8s.io/kubernetes
GHSA-vv39-3w5q-974q
Kubernetes allows Command Injection affecting Windows nodes via nodes/*/logs/query API
Medium Also affects k8s.io/kubernetes
GHSA-jgfp-53c3-624w
Node Denial of Service via kubelet Checkpoint API
Medium Also affects k8s.io/kubernetes
GHSA-27wf-5967-98gx
Kubernetes kubelet arbitrary command execution
High Also affects k8s.io/kubernetes
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor