
CVE-2026-31431, también conocido como Copy Fail, puede mitigarse en una sola línea con bpftrace
CVE-2026-31431,又名 Copy Fail,可以通过 bpftrace 命令,用一行代码进行修复,无需编译 kpatch,无需 cargo 编译
要利用该漏洞,需要绑定到AF_ALG接口,并且使用加密算法authencesn,而这是绝大多数程序都不会用到的。这也就是修复代码可以发挥作用的地方。
├── kfunc.sh
├── kprobe.sh
├── tests
│ └── bind_af_alg.py
└── tracepoint.sh
tracepoint.sh的原版作者是@天擎智能云,他的原版代码发布于微信公众号
这代码我测试了,确实能用。
但是,受到 https://github.com/Jannik2099/copyfail-ebpf-mitigation 的启发,我发现如果程序仅仅是绑定到AF_ALG接口,但是没有使用加密算法authencesn的情况下,该进程也会被无条件杀掉。
解释比较苍白,看代码 。
因此,在Deepseek的帮助下,我花了1天的时间做测试,验证了另外2个修复代码。他们可以实现和所有尝试绑定到接口,并且使用加密算法的进程。
记录拒绝| 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 |