CVE-2026-89973 in Linuxthông tin

Tóm tắt

Bởi VulDB • 16/09/2026

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

nvme-tcp: kiểm tra hướng dữ liệu của PDU C2HData

Hàm `nvme_tcp_handle_c2h_data()` tìm kiếm yêu cầu dựa trên ID lệnh và xác nhận rằng nó có payload (dữ liệu tải), nhưng không kiểm tra xem lệnh đó có yêu cầu đọc dữ liệu hay không. Do đó, một bộ điều khiển trả về PDU C2HData cho một lệnh ghi sẽ dẫn đến việc gọi `nvme_tcp_recv_data()`, tại đây `_copy_to_iter()` gặp phải cảnh báo `WARN_ON_ONCE(i->data_source)` và trả về 0. Đường nhận dữ liệu chuyển đổi giá trị này thành -EFAULT và đặt lại bộ điều khiển.

Không có dữ liệu nào được sao chép, vì vậy đây không phải là lỗi hỏng bộ nhớ (memory corruption). Những gì một bộ điều khiển nhận được là một cảnh báo kernel mà nó có thể kích hoạt tùy ý; điều này trở nên nghiêm trọng trên máy chủ khởi động với tham số `panic_on_warn`.

Đường gửi dữ liệu đã biết hướng - nó sử dụng hàm `rq_data_dir()` khi xây dựng lệnh - và `nvme_tcp_handle_r2t()` kiểm tra độ dài và offset của yêu cầu mà nó đề cập. Tuy nhiên, đường C2HData không hề kiểm tra hướng dữ liệu.

Từ chối PDU C2HData có lệnh không phải là lệnh đọc. Việc từ chối này sẽ làm thất bại lệnh và đặt lại bộ điều khiển, giống như cách kiểm tra lân cận trong hàm này hoạt động; điểm khác biệt duy nhất là cảnh báo sẽ biến mất.

[ 6.885580] ------------[ cut here ]------------
[ 6.886457] WARNING: lib/iov_iter.c:193 tại _copy_to_iter+0x289/0x1330, CPU#0: kworker/0:1H/71
[ 6.888137] CPU: 0 UID: 0 PID: 71 Comm: kworker/0:1H Not tainted 7.2.0-rc5-NVMETCP-gf5098b6bae76 #1 PREEMPT(lazy)
[ 6.891165] Workqueue: nvme_tcp_wq nvme_tcp_io_work
[ 6.891875] RIP: 0010:_copy_to_iter+0x289/0x1330
[ 6.903739] Call Trace:
[ 6.904085] <TASK>
[ 6.909254] __skb_datagram_iter+0x433/0x820
[ 6.911026] skb_copy_datagram_iter+0x37/0x120
[ 6.911622] nvme_tcp_recv_skb+0xa07/0x4320
[ 6.913378] __tcp_read_sock+0x1ab/0x810
[ 6.915788] nvme_tcp_try_recv+0x152/0x1e0
[ 6.918222] nvme_tcp_io_work+0x1e4/0x6c0
[ 6.926906] </TASK>
[ 6.927226] ---[ end trace 0000000000000000 ]---
[ 6.927878] nvme nvme0: queue 1 failed to copy request 0x71 data
[ 6.928709] nvme nvme0: receive failed: -14

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

chịu trách nhiệm

Linux

Đặt trước

11/09/2026

Tiết lộ

17/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!