Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CVE-2020-8559: Privilege escalation from compromised node to cluster #92914

Closed
tallclair opened this issue Jul 8, 2020 · 7 comments
Closed
Assignees
Labels
area/apiserver area/security committee/security-response Denotes an issue or PR intended to be handled by the product security committee. kind/bug Categorizes issue or PR as related to a bug. official-cve-feed Issues or PRs related to CVEs officially announced by Security Response Committee (SRC) sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery.

Comments

@tallclair
Copy link
Member

tallclair commented Jul 8, 2020

CVSS Rating: Medium (6.4) CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:H

If an attacker is able to intercept certain requests to the Kubelet, they can send a redirect response that may be followed by a client using the credentials from the original request. This can lead to compromise of other nodes.

If multiple clusters share the same certificate authority trusted by the client, and the same authentication credentials, this vulnerability may allow an attacker to redirect the client to another cluster. In this configuration, this vulnerability should be considered High severity.

Am I vulnerable?

You are only affected by this vulnerability if you treat the node as a security boundary, or if clusters share certificate authorities and authentication credentials.

Note that this vulnerability requires an attacker to first compromise a node through separate means.

Affected Versions

  • kube-apiserver v1.18.0-1.18.5
  • kube-apiserver v1.17.0-1.17.8
  • kube-apiserver v1.16.0-1.16.12
  • all kube-apiserver versions prior to v1.16.0

How do I mitigate this vulnerability?

To mitigate this vulnerability you must upgrade the kube-apiserver to a patched version.

Fixed Versions

Fix impact: Proxied backends (such as an extension API server) that respond to upgrade requests with a non-101 response code may be broken by this patch.

To upgrade, refer to the documentation: https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#upgrading-a-cluster

Detection

Upgrade requests should never respond with a redirect. If any of the following requests have a response code in the 300-399 range, it may be evidence of exploitation. This information can be found in the Kubernetes audit logs.

  • pods/exec
  • pods/attach
  • pods/portforward
  • any resource: proxy

If you find evidence that this vulnerability has been exploited, please contact [email protected]

Acknowledgements

This vulnerability was reported by Wouter ter Maat of Offensi, via the Kubernetes bug bounty.

/area security
/kind bug
/committee product-security
/sig api-machinery
/area apiserver

@tallclair tallclair added the kind/bug Categorizes issue or PR as related to a bug. label Jul 8, 2020
@tallclair tallclair self-assigned this Jul 8, 2020
@k8s-ci-robot k8s-ci-robot added the needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. label Jul 8, 2020
@k8s-ci-robot
Copy link
Contributor

@tallclair: Closing this issue.

In response to this:

This issue is reserved for a future vulnerability announcement.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@tallclair tallclair changed the title [RESERVED] CVE-2020-8559: Privilege escalation from compromised node to cluster Jul 15, 2020
@tallclair
Copy link
Member Author

/area security
/kind bug
/committee product-security
/sig api-machinery
/area apiserver

@tdwyer
Copy link

tdwyer commented Jul 22, 2020

PoC Exploit for CVE-2020-8559

https://github.com/tdwyer/CVE-2020-8559

@tabbysable
Copy link
Member

A different approach to exploiting CVE-2020-8559: https://github.com/tabbysable/POC-2020-8559/

@tallclair
Copy link
Member Author

@tabbysable Any interest in turning your POC into a Kubernetes E2E test? I was intending to use the overridden redirect feature added in #92850 as the basis for the E2E.

@tabbysable
Copy link
Member

@tallclair that is indeed interesting! I'll put this on my list and try to look at it in the next couple weeks.

@PushkarJ
Copy link
Member

PushkarJ commented Dec 2, 2021

/label official-cve-feed

(Related to kubernetes/sig-security#1)

@k8s-ci-robot k8s-ci-robot added the official-cve-feed Issues or PRs related to CVEs officially announced by Security Response Committee (SRC) label Dec 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/apiserver area/security committee/security-response Denotes an issue or PR intended to be handled by the product security committee. kind/bug Categorizes issue or PR as related to a bug. official-cve-feed Issues or PRs related to CVEs officially announced by Security Response Committee (SRC) sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery.
Projects
None yet
Development

No branches or pull requests

5 participants