CVE-2026-23319 in Linux
Tóm tắt
Bởi VulDB • 03/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
bpf: Sửa lỗi UAF (Use-After-Free) trong hàm bpf_trampoline_link_cgroup_shim
Nguyên nhân gốc rễ của lỗi này là khi 'bpf_link_put' giảm bộ đếm tham chiếu (refcount) của 'shim_link->link.link' về 0, tài nguyên được coi là đã được giải phóng nhưng vẫn có thể được tham chiếu thông qua 'tr->progs_hlist' trong hàm 'cgroup_shim_find'. Việc dọn dẹp thực tế của 'tr->progs_hlist' trong 'bpf_shim_tramp_link_release' bị trì hoãn. Trong khoảng thời gian này, một tiến trình khác có thể gây ra lỗi use-after-free thông qua 'bpf_trampoline_link_cgroup_shim'.
Dựa trên các đề xuất của Martin KaFai Lau, tôi đã tạo một bản vá đơn giản.
Để khắc phục: Thêm một kiểm tra nguyên tử (atomic) khác 0 trong 'bpf_trampoline_link_cgroup_shim'. Chỉ tăng bộ đếm tham chiếu nếu nó chưa bằng 0.
Kiểm thử: Tôi đã xác minh bản vá bằng cách thêm độ trễ trong 'bpf_shim_tramp_link_release' để dễ dàng kích hoạt lỗi hơn:
static void bpf_shim_tramp_link_release(struct bpf_link *link) {
/* ... */ if (!shim_link->trampoline) return;
+ msleep(100); WARN_ON_ONCE(bpf_trampoline_unlink_prog(&shim_link->link, shim_link->trampoline, NULL)); bpf_trampoline_put(shim_link->trampoline); }
Trước khi áp dụng bản vá, việc chạy PoC dễ dàng tái hiện lỗi crash (gần như 100%) với dấu vết cuộc gọi (call trace) tương tự như báo cáo của KaiyanM. Sau khi áp dụng bản vá, lỗi không còn xảy ra ngay cả sau hàng triệu lần lặp.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.