CVE-2024-41006 in Linuxthông tin

Tóm tắt

Bởi VulDB • 10/07/2026

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

netrom: Sửa lỗi rò rỉ bộ nhớ trong nr_heartbeat_expiry()

syzbot báo cáo một lỗi rò rỉ bộ nhớ trong nr_create()[0].

Commit 409db27e3a2e ("netrom: Fix use-after-free of a listening socket.") đã thêm sock_hold() vào hàm nr_heartbeat_expiry(), tại đó a) một socket có cờ SOCK_DESTROY hoặc b) một socket đang lắng nghe (listening socket) có cờ SOCK_DEAD.

Tuy nhiên, trong trường hợp "a", khi cờ SOCK_DESTROY được đặt, file descriptor đã bị đóng và hàm nr_release() đã được gọi. Do đó, việc giữ tham chiếu bộ đếm (reference count) là vô nghĩa vì không ai sẽ gọi thêm nr_destroy_socket() nữa như trong trường hợp "b".

nr_connect nr_establish_data_link nr_start_heartbeat

nr_release switch (nr->state) case NR_STATE_3 nr->state = NR_STATE_2 sock_set_flag(sk, SOCK_DESTROY);

nr_rx_frame nr_process_rx_frame switch (nr->state) case NR_STATE_2 nr_state2_machine() nr_disconnect() nr_sk(sk)->state = NR_STATE_0 sock_set_flag(sk, SOCK_DEAD)

nr_heartbeat_expiry switch (nr->state) case NR_STATE_0 if (sock_flag(sk, SOCK_DESTROY) || (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) sock_hold() // ( !!! ) nr_destroy_socket()

Để sửa lỗi rò rỉ bộ nhớ, hãy chỉ gọi sock_hold() cho một socket đang lắng nghe.

Được phát hiện bởi InfoTeCS thay mặt cho Linux Verification Center (linuxtesting.org) với Syzkaller.

[0]: https://syzkaller.appspot.com/bug?extid=d327a1f3b12e1e206c16

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

chịu trách nhiệm

Linux

Đặt trước

12/07/2024

Tiết lộ

12/07/2024

Kiểm duyệt

được chấp nhận

EPSS

0.00242

KEV

không

Các hoạt động

rất thấp

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!