CVE-2024-35944 in Linuxthông tin

Tóm tắt

Bởi VulDB • 03/06/2026

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

VMCI: Sửa cảnh báo thời gian chạy của memcpy() trong dg_dispatch_as_host()

Syzkaller đã kích hoạt lỗi 'WARNING in dg_dispatch_as_host'.

memcpy: phát hiện ghi vượt quá trường (kích thước 56) của một trường đơn lẻ "&dg_info->msg" tại drivers/misc/vmw_vmci/vmci_datagram.c:237 (kích thước 24)

WARNING: CPU: 0 PID: 1555 tại drivers/misc/vmw_vmci/vmci_datagram.c:237 dg_dispatch_as_host+0x88e/0xa60 drivers/misc/vmw_vmci/vmci_datagram.c:237

Một số ghi chú mã nguồn, dựa trên hiểu biết của tôi:

544 #define VMCI_DG_SIZE(_dg) (VMCI_DG_HEADERSIZE + (size_t)(_dg)->payload_size) /// Điều này tương đương 24 + payload_size

memcpy(&dg_info->msg, dg, dg_size); Destination = dg_info->msg ---> đây là một cấu trúc 24 byte (struct vmci_datagram) Source = dg --> đây là một cấu trúc 24 byte (struct vmci_datagram) Size = dg_size = 24 + payload_size

{payload_size = 56-24 =32} -- Syzkaller đã có thể đặt payload_size thành 32.

35 struct delayed_datagram_info {
36 struct datagram_entry *entry; 37 struct work_struct work; 38 bool in_dg_host_queue; 39 /* msg và msg_payload phải nằm liền kề nhau. */ 40 struct vmci_datagram msg; 41 u8 msg_payload[];
42 };

Do đó, các byte payload dư thừa được sao chép vào msg_payload[], gây ra cảnh báo thời gian chạy khi fuzzing với Syzkaller.

Một cách khắc phục có thể là chia memcpy() thành hai phần -- một phần là gán trực tiếp msg và phần thứ hai xử lý payload.

Gustavo đã trích dẫn: "Với FORTIFY_SOURCE, chúng ta không nên sao chép dữ liệu xuyên qua nhiều thành viên trong một cấu trúc."

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Đặt trước

17/05/2024

Tiết lộ

19/05/2024

Kiểm duyệt

được chấp nhận

EPSS

0.00232

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!