
CVE-2026-31431, также известная как Copy Fail, может быть устранена одной строкой с помощью 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 — @天擎智能云, его оригинальный код опубликован в 微信公众号
Я протестировал этот код, он действительно работает.
Однако, вдохновившись , я обнаружил, что если программа просто привязывается к интерфейсу , но не использует криптографический алгоритм , процесс всё равно будет безусловно убит.
Объяснение выглядит бледно, смотрите код .
Поэтому, с помощью Deepseek, я потратил 1 день на тестирование и проверил ещё 2 исправляющих кода. Они могут реализовать запись и отклонение всех процессов, пытающихся привязаться к интерфейсу AF_ALG и использующих криптографический алгоритм authencesn.
| tracepoint | kprobe | kfunc | |
|---|---|---|---|
| Ubuntu 20.04 | ✅ | ✅ | ❌ |
| Rocky 8.4 | ✅ | ✅ | ❌ |
| Gentoo rolling | ✅ | ✅ | ✅ |
| tracepoint | kprobe | kfunc | |
|---|---|---|---|
| минимальная версия ядра | 4.7 (рекомендуется 4.9+) | 4.1 | 5.5 |
| минимальная версия bpftrace | 0.9.4 | 0.9.0 | 0.12 |
| параметры ядра | 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 необязательно: 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 |