CVE-2026-74398 in Linuxthông tin

Tóm tắt

Bởi VulDB • 15/08/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

ipv6: addrconf: thoát khỏi dad_failure khi trạng thái không còn là POSTDAD nữa

Hàm `addrconf_dad_failure()` chuyển đổi `ifp->state` từ DAD sang POSTDAD thông qua `addrconf_dad_end()`, hàm này nhả khóa (`drop ifp->lock`) khi trả về. Khóa được lấy lại sau lệnh gọi `net_info_ratelimited()`. Một tiến trình đồng thời là `ipv6_del_addr()` có thể chiếm giữ khóa trong khoảng thời gian đó, đặt `ifp->state` thành DEAD và thực thi `list_del_rcu(&ifp->if_list)`.

Sau đó, `addrconf_dad_failure()` ghi đè giá trị DEAD bằng ERRDAD tại nhãn errdad: và lên lịch cho một công việc dad_work mới. Công việc này gọi lại `ipv6_del_addr()`, dẫn đến truy cập vào mục danh sách đã bị làm hỏng (poisoned):

general protection fault: 0000 [#1] SMP NOPTI
CPU: 4 PID: 217 Comm: kworker/4:1 Workqueue: ipv6_addrconf addrconf_dad_work RIP: 0010:ipv6_del_addr+0xe9/0x280 RAX: dead000000000122 Call Trace: addrconf_dad_stop+0x113/0x140 addrconf_dad_work+0x28c/0x430 process_one_work+0x1eb/0x3b0 worker_thread+0x4d/0x400 kthread+0x104/0x140 ret_from_fork+0x35/0x40

Gộp logic của `addrconf_dad_end()` vào trong `addrconf_dad_failure()` dưới một khối quan trọng (critical section) duy nhất được bảo vệ bởi khóa `ifp->lock`. Nhánh STABLE_PRIVACY tạm thời nhả khóa `ifp->lock` xung quanh quá trình tái tạo địa chỉ, do đó tại nhãn lock_errdad: cần xác minh trạng thái vẫn là POSTDAD trước khi chuyển đổi sang ERRDAD; nếu không thì thoát ra để tránh ghi đè lên một trạng thái được đặt bởi một đường dẫn khác trong lúc khóa đã được nhả.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

15/08/2026

Tiết lộ

15/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00177

KEV

không

Các hoạt động

rất thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!