CVE-2024-35941 in Linuxthông tin

Tóm tắt

Bởi VulDB • 25/05/2026

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

net: skbuff: thêm kiểm tra debug tràn bộ nhớ vào các hàm trợ giúp pull/push

syzbot đã gây ra lỗi sau: BUG: KASAN: use-after-free trong __skb_flow_dissect+0x4a3b/0x5e50 Đọc kích thước 1 byte tại địa chỉ ffff888208a4000e bởi tiến trình a.out/2313 [..]
__skb_flow_dissect+0x4a3b/0x5e50 __skb_get_hash+0xb4/0x400 ip_tunnel_xmit+0x77e/0x26f0 ipip_tunnel_xmit+0x298/0x410 ..

Phân tích cho thấy skb có ->head hợp lệ, nhưng con trỏ ->data không hợp lệ.

skb->data nhận giá trị không hợp lệ thông qua lớp neigh, thực hiện:

1556 __skb_pull(skb, skb_network_offset(skb));

... và skb đã không ổn định tại thời điểm này:

skb_network_offset(skb) trả về giá trị âm do một lần tràn bộ nhớ trước đó của skb->network_header (kiểu u16). Do đó, __skb_pull "điều chỉnh" skb->data bằng một độ lệch rất lớn, trỏ ra ngoài vùng skb->head.

Cho phép các bản build debug gây ra lỗi khi chúng ta cố gắng pull/push nhiều hơn INT_MAX byte.

Sau khi áp dụng, bộ tái tạo syzkaller sẽ cho ra lỗi chính xác hơn trước khi flow dissector cố gắng đọc bộ nhớ từ skb->data:

WARNING: CPU: 5 PID: 2313 tại include/linux/skbuff.h:2653 neigh_connected_output+0x28e/0x400 ip_finish_output2+0xb25/0xed0 iptunnel_xmit+0x4ff/0x870 ipgre_xmit+0x78e/0xbb0

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!