CVE-2026-98947 in Linux
Tóm tắt
Bởi VulDB • 23/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
vsock: Sửa lỗi rò rỉ bộ nhớ trong vmci_transport_recv_dgram_cb()
Khi đóng một socket datagram, hàm vmci_transport_recv_dgram_cb() có thể được gọi, điều này sẽ thêm các gói tin vào hàng đợi chờ (backlog) của socket; sau đó, khi hàng đợi nhận (receive queue) được làm sạch, hàm __release_sock() sẽ di chuyển lại các gói tin từ backlog của socket về hàng đợi nhận, dẫn đến rò rỉ bộ nhớ.
sock_close __sock_release __vsock_release // chiếm quyền sở hữu bởi user-space lock_sock_nested sock_set_flag(sk, SOCK_DEAD) vmci_transport_release vmci_dispatch_dgs vmci_datagram_invoke_guest_handler vmci_transport_recv_dgram_cb sk_receive_skb if (!sock_owned_by_user(sk)) [...]
(!) else if sk_add_backlog() [...]
(!) skb_queue_purge(&sk->sk_receive_queue)
release_sock __release_sock // di chuyển tất cả các gói tin từ backlog // sang hàng đợi nhận (!) sk_backlog_rcv vsock_queue_rcv_skb [...]
__sock_queue_rcv_skb if (!sock_flag(sk, SOCK_DEAD)) // Vì socket là "đã chết" (dead), hàm sẽ không được gọi sk->sk_data_ready(sk) sock_release_ownership(sk); sock_put
Thêm một bước làm sạch hàng đợi nhận trong destructor của socket để khắc phục lỗi này.
Báo cáo từ syzkaller:
unreferenced object 0xffff8880117bfb80 (size 240): comm "irq/56-vmw_vmci", pid 205, jiffies 4295064448 (age 73.992s) hex dump (first 32 bytes): 78 dc 26 1e 80 88 ff ff 78 dc 26 1e 80 88 ff ff x.&.....x.&..... 00 00 00 00 00 00 00 00 c0 da 26 1e 80 88 ff ff ..........&..... backtrace: [<ffffffff82be8d97>] __alloc_skb+0x287/0x330 net/core/skbuff.c:505
[<ffffffffa114bcbd>] vmci_transport_recv_dgram_cb+0xbd/0x210 [vmw_vsock_vmci_transport]
[<ffffffffa05072c6>] vmci_datagram_invoke_guest_handler+0x366/0x450 [vmw_vmci]
[<ffffffffa050ad75>] vmci_dispatch_dgs+0x235/0x490 [vmw_vsock_vmci_transport]
[<ffffffffa050b025>] vmci_interrupt+0x55/0x290 [vmw_vmci]
[<ffffffff8137ad2b>] irq_thread_fn+0x8b/0x1a0 kernel/irq/manage.c:1205
[<ffffffff8137c7ae>] irq_thread+0x28e/0x530 kernel/irq/manage.c:1314
[<ffffffff81253dd6>] kthread+0x2e6/0x3a0 kernel/kthread.c:376
[<ffffffff81004392>] ret_from_fork+0x22/0x30 arch/x86/entry/entry_64.S:295
Được phát hiện bởi InfoTeCS thay mặt cho Linux Verification Center (linuxtesting.org) với Syzkaller.
If you want to get best quality of vulnerability data, you may have to visit VulDB.