nodes/proxy GET → Kubelet /exec RCE via WebSocket handshake ... #252
+27
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Post summary (Published: 2026-01-26)
The post describes a Kubernetes RBAC authorization bypass where a service account that appears “read-only” because it only has
nodes/proxywith verbgetcan still achieve command execution inside arbitrary Pods by connecting directly to the node’s Kubelet API (TCP 10250) and using WebSockets for the Kubelet/execendpoint. Tested on Kubernetes v1.34 and v1.35. The re...🔧 Technical Details
Trick 1 — Exploit protocol-driven RBAC verb mapping (WebSocket GET handshake): If an authorization layer derives RBAC verbs from the initial HTTP method, then protocols that begin with a mandatory HTTP
GEThandshake (WebSockets, and similarly SPDY) can downgrade an operation’s required verb. For kubelet/exec, the interactive stream is established via a WebSocket handshake (GET+Connection: Upgrade), so the kubelet maps the request to RBAC verbgetinstead of the semantically correctcreate. If there is no second authz check after upgrade, the attacker can perform write-like actions (command execution) with only read-like verbs.Trick 2 — Abuse overbroad/default subresource mapping to
nodes/proxy: When an API path-to-subresource mapper does not explicitly enumerate sensitive endpoints (/exec,/run,/attach,/...🤖 Agent ActionsUpdated HackTricks with the kubelet nodes/proxy WebSocket verb-confusion abuse:
nodes/proxyGET to reach kubelet/execover WebSockets, including the verb/subresource mapping flaw, direct exploitation viawebsocat, audit evasion notes, and detection/mitigation pointers. Added references to the research blog, detection script, and tooling.This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.