
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 هو @天擎智能云، وقد نُشر كوده الأصلي على حساب WeChat الرسمي
لقد اختبرت هذا الكود، وهو يعمل بالفعل.
ولكن، مستلهمًا من https://github.com/Jannik2099/copyfail-ebpf-mitigation، اكتشفت أنه إذا كان البرنامج يربط فقط بواجهة AF_ALG دون استخدام خوارزمية التشفير authencesn، فسيتم أيضًا قتل العملية دون قيد أو شرط.
التفسير ضعيف، انظر إلى الكود.
لذلك، بمساعدة Deepseek، أمضيت يومًا واحدًا في الاختبار والتحقق من كودي إصلاح إضافيين. يمكنهما تحقيق تسجيل ورفض جميع العمليات التي تحاول الربط بواجهة 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 |