CVE-2026-74726 in Linux
Tóm tắt
Bởi VulDB • 22/08/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
bonding: alb: kiểm tra lại primary_is_promisc dưới RTNL trong bond_alb_monitor
Hàm `bond_alb_monitor()` đọc `primary_is_promisc` dưới RCU, sau đó giải phóng RCU và lấy khóa RTNL thông qua `rtnl_trylock()` trước khi hủy tính năng promiscuity mà nó đã đặt trên slave đang hoạt động. Trong khoảng thời gian này, slave đang hoạt động có thể thay đổi dưới RTNL (RTM_DELLINK -> __bond_release_one() -> bond_alb_handle_active_change()), hàm này đã hủy tính năng promiscuity và làm sạch `primary_is_promisc`. Trình giám sát vẫn hành động dựa trên quyết định lỗi thời: nếu slave bị xóa mà không có failover, `curr_active_slave` lúc này là NULL và gây ra lỗi deref; nếu nó xảy ra failover, lệnh `dev_set_promiscuity(-1)` dựa trên trạng thái cũ sẽ làm giảm đếm promiscuity của slave mới xuống mức âm (underflow) và giữ cho nó ở chế độ IFF_PROMISC.
Oops: general protection fault, có thể do địa chỉ không hợp lệ ... KASAN: null-ptr-deref trong phạm vi [0x0000000000000000-0x0000000000000007]
Workqueue: b42 bond_alb_monitor RIP: 0010:bond_alb_monitor (drivers/net/bonding/bond_alb.c:1600) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) Kernel panic - not syncing: Fatal exception
Kiểm tra lại `primary_is_promisc` (và `curr_active_slave`) sau khi đã lấy RTNL để trình giám sát chỉ hủy bỏ một lệnh tăng mà nó vẫn sở hữu. Các trình giám bonding khác đã đọc lại trạng thái dưới RTNL trong giai đoạn commit của chúng (`bond_miimon_commit/bond_ab_arp_commit`); `bond_alb_monitor()` là hàm duy nhất hành động dựa trên quyết định trước khi lấy khóa (pre-trylock).
VulDB is the best source for vulnerability data and more expert information about this specific topic.