CVE-2026-89480 Affecting kernel-rt-debug-devel package, versions <0:4.18.0-553.168.1.rt7.509.el8_10


Severity

Recommended
high

Based on AlmaLinux security rating.

Threat Intelligence

EPSS
0.57% (45th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-ALMALINUX8-KERNELRTDEBUGDEVEL-20137481
  • published25 Sept 2026
  • disclosed24 Sept 2026

Introduced: 24 Sep 2026

NewCVE-2026-89480  (opens in a new tab)

How to fix?

Upgrade AlmaLinux:8 kernel-rt-debug-devel to version 0:4.18.0-553.168.1.rt7.509.el8_10 or higher.
This issue was patched in ALSA-2026:71330.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-rt-debug-devel package and not the kernel-rt-debug-devel package as distributed by AlmaLinux. See How to fix? for AlmaLinux:8 relevant fixed versions and status.

In the Linux kernel, the following vulnerability has been resolved:

nvme-tcp: reject a read that transferred too few bytes

nvme_tcp_recv_data() completes a request once the current C2HData PDU has been consumed. Nothing compares the total bytes received against the length the command asked for: struct nvme_tcp_request has no receive-side counter, queue->data_remaining is per queue, and blk_mq_end_request() completes for blk_rq_bytes(rq) unconditionally with no residual concept anywhere above.

A controller can therefore answer a 4096-byte read with 512 bytes and have it reported as a complete read; user space then gets 4096 bytes of which 3584 are whatever was already in the page. I reproduced that with a test target.

Count the bytes received and refuse to complete a successful read whose count does not match, at the two NVME_TCP_F_DATA_SUCCESS paths and in nvme_tcp_process_nvme_cqe(). The success test shifts req->status right by one, because the driver keeps the wire value there and shifts it on completion, so the check must see what the completion path will see. Only REQ_OP_READ is checked, because there the length comes from the sectors the request covers; a passthrough command is built by its submitter, which picks both command and buffer, so the kernel has nothing to compare against.

CVSS Base Scores

version 3.1