Skip to content

Commit 07fe301

Browse files
committed
Instructions how to use kubectl node-shell
Signed-off-by: Kurt Garloff <kurt@garloff.de>
1 parent 8aa63cd commit 07fe301

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

blog/2026-05-10-kernel-root-exploits.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ LPEs per year. Most of the time, they affect only a small fraction of users
2828
and often they are hard to exploit, needing to win a race condition with
2929
many attempts and sometimes causing crashes in trying (which may not go unnoticed).
3030

31-
We don't report about these LPEs. They get fixed by the upstream Linux kernel
31+
We don't normally report about these LPEs. They get fixed by the upstream Linux kernel
3232
developers, shipped as stable updates by the maintainers and shipped to the end
3333
users via kernel updates from the Linux distributors.
3434

3535
The currently highly visible Linux kernel issues [copy.fail](https://copy.fail/)
3636
and [Dirty Frag](https://github.com/V4bel/dirtyfrag) are both LPEs (local root
3737
vulnerabilities). The reason we report about them is that they both affect
38-
most Linux users and are easy to exploit.
38+
most Linux users (with kernels from the last 9 years) and are easy to exploit.
3939

4040
Like [Dirty Pipe](https://dirtypipe.cm4all.com/) and before
4141
[Dirty Cow](https://dirtycow.ninja/), both LPEs rely on improper protection
@@ -70,13 +70,14 @@ this again become root very quickly by overwriting the page cache's view of
7070
This can be triggered via the IPsec `esp_input` (for both IPv4 and IPv6) as well
7171
as via the `rxrpc` code. The esp variant requires the privilege to create user
7272
namespaces and then allows for easy 4 byte writes at a time. It has been assigned
73-
CVE-2026-43284. The rxrpc variant overwrites 8 bytes, but as these are crypted,
73+
CVE-2026-43284. The rxrpc variant overwrites 8 bytes and doe not require the
74+
namespace creation privileges, but as these bytes are crypted,
7475
the user needs to brute force them in order to achieve a controlled result. This
7576
variant was assigned CVE-2026-43500.
7677

77-
_Exploiting this vulnerability requires access to the system and the ability
78-
to execute code there, thus the categorization as LPE, not RCE (remote
79-
code execution)._
78+
_Exploiting these vulnerabilities requires access to the system and the ability
79+
to execute code there, thus the categorization as Local Privilege Escalation (LPE),
80+
not Remote Code Execution (RCE)._
8081

8182
## Impact
8283

@@ -112,7 +113,7 @@ Linux distributors are currently underway to ship fixed kernels.
112113
Without a fixed kernel, a workaround is to place a file `copyfail.conf` in
113114
`/etc/modprobe.d/` with the contents:
114115

115-
```text
116+
```shell
116117
# Temporary workaround for copy.fail CVE-2026-31431
117118
install algif_aead /bin/false
118119
```
@@ -129,7 +130,7 @@ manage to ship tested fixed kernels.
129130
A fully effective workaround is again to prevent loading the affected modules
130131
by placing another file `dirtyfrag.conf` in `/etc/modprobe.d/`:
131132

132-
```text
133+
```shell
133134
# Temporary workaround for Dirty Frag CVE-2026-43284, CVE-2026-43500
134135
# This breaks IPsec
135136
install esp4 /bin/false
@@ -203,6 +204,13 @@ into a rescue image (if the cluster runs on OpenStack) to inject an ssh
203204
key or to use a tool like kubectl-node-shell with the appropriate
204205
privileges.
205206

207+
```bash
208+
for node in $(kubectl get nodes | grep -v '^NAME' | awk '{print $1;}') do;
209+
kubectl node_shell "$node" -- bash -c 'echo -e "# Temporarily disable algif_aead (copy.fail)\ninstall algif_aead /bin/false" > /etc/modprobe.d/disable-aead-copyfail.conf'
210+
kubectl node_shell "$node" -- bash -c 'echo -e "# Temporarily disable esp4, esp6, rxrpc (Dirty Frag)\ninstall esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false" > /etc/modprobe.d/disable-esp46-rxrpc-dirtyfrag.conf'
211+
done
212+
```
213+
206214
## SCS Cloud users
207215

208216
Customers of SCS IaaS clouds are responsible for their own VMs. For VMs

0 commit comments

Comments
 (0)