
CVE-2026-31431, auch bekannt als Copy Fail, kann mit einer einzigen Zeile bpftrace entschärft werden.
CVE-2026-31431, auch bekannt als Copy Fail, kann mit einem einzigen Befehl über bpftrace behoben werden, ohne dass kpatch kompiliert oder cargo verwendet werden muss
Um diese Schwachstelle auszunutzen, muss man sich an die AF_ALG-Schnittstelle binden und den Verschlüsselungsalgorithmus authencesn verwenden, was die allermeisten Programme nicht tun. Genau hier kann der Fix-Code ansetzen.
├── kfunc.sh
├── kprobe.sh
├── tests
│ └── bind_af_alg.py
└── tracepoint.sh
Der Originalautor von tracepoint.sh ist @天擎智能云, dessen Originalcode auf 微信公众号 veröffentlicht wurde.
Ich habe diesen Code getestet und er funktioniert tatsächlich.
Allerdings, inspiriert von https://github.com/Jannik2099/copyfail-ebpf-mitigation, habe ich festgestellt, dass der Prozess auch dann bedingungslos beendet wird, wenn er sich lediglich an die -Schnittstelle bindet, ohne den Verschlüsselungsalgorithmus zu verwenden.
Die Erklärung klingt etwas blass, siehe Code.
Daher habe ich mit Hilfe von Deepseek einen Tag lang Tests durchgeführt und zwei weitere Fix-Codes verifiziert. Sie können Prozesse, die versuchen, sich an die AF_ALG-Schnittstelle zu binden und den Verschlüsselungsalgorithmus authencesn zu verwenden, protokollieren und ablehnen.
| tracepoint | kprobe | kfunc | |
|---|---|---|---|
| Ubuntu 20.04 | ✅ | ✅ | ❌ |
| Rocky 8.4 | ✅ | ✅ | ❌ |
| Gentoo rolling | ✅ | ✅ | ✅ |
| tracepoint | kprobe | kfunc | |
|---|---|---|---|
| kernel version (minimum) | 4.7 (4.9+ recommended) | 4.1 | 5.5 |
| bpftrace version (minimum) | 0.9.4 | 0.9.0 | 0.12 |
| kernel parameters | CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_EVENTS=y CONFIG_FTRACE_SYSCALLS=y CONFIG_FUNCTION_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_DEBUG_FS=y optional: CONFIG_BPF_JIT=y & CONFIG_HAVE_EBPF_JIT=y CONFIG_KPROBES=y CONFIG_KPROBE_EVENTS=y VENTS=y | CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_KPROBES=y CONFIG_KPROBE_EVENTS=y CONFIG_BPF_EVENTS=y | CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_EVENTS=y CONFIG_BPF_JIT=y CONFIG_HAVE_EBPF_JIT=y CONFIG_KPROBES=y CONFIG_KPROBE_EVENTS=y CONFIG_FUNCTION_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DEBUG_INFO_BTF=y CONFIG_DEBUG_INFO_BTF_MODULES=y CONFIG_DEBUG_FS=y |