CVE-2025-0426: Node Denial of Service via kubelet Checkpoint API
6.2
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| k8s.io/kubernetes | go | >= 1.32.0, < 1.32.2 | 1.32.2 |
| k8s.io/kubernetes | go | >= 1.31.0, < 1.31.6 | 1.31.6 |
| k8s.io/kubernetes | go | >= 1.30.0, < 1.30.10 | 1.30.10 |
| k8s.io/kubernetes | go | < 1.29.14 | 1.29.14 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability occurs because the kubelet's Checkpoint API was exposed on an unauthenticated read-only HTTP endpoint. The provided patches (e.g., bda81f1b68e22671e5e26953f0086ac6fca9d8aa) show that the registration of the '/checkpoint' route, which is handled by the 's.checkpoint' method, was moved from the InstallDefaultHandlers function to the InstallDebuggingHandlers function. InstallDefaultHandlers sets up the unauthenticated read-only port, while InstallDebuggingHandlers typically sets up authenticated endpoints. Therefore, InstallDefaultHandlers was the function that incorrectly exposed the checkpointing functionality without authentication, and s.checkpoint (which resolves to k8s.io/kubernetes/pkg/kubelet/server.(*Server).checkpoint) is the function that processes these potentially malicious requests, leading to disk exhaustion.