Skip to content

CVE-2026-99154 scsi: libiscsi: Reject a negative task index from parse_pdu_itt

CriticalCVSS 9.8 EPSS 0.51%
Published
Updated
Exploit status
No public exploit known

Description

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

scsi: libiscsi: Reject a negative task index from parse_pdu_itt

A transport that implements parse_pdu_itt hands libiscsi an index taken
from the PDU, and both lookups bound it from above only:

  if (i >= session->cmds_max)

i and cmds_max are both int, so a negative index passes and
session->cmds[i] is read from before the array.

be2iscsi produces one. beiscsi_parse_pdu() assigns the raw tag,

  *index = (int)itt;

and beiscsi_complete_pdu() forwards an unsolicited NOP-In from the
hardware async ring without replacing its ITT, so the value is the
target's. It also reports the session's own age rather than the one in
the tag, which leaves the age comparison in iscsi_verify_itt() with
nothing to reject.

Bound the index from below in both lookups.

Affected products

ProductAffected versionsFixed in
redhat/kernel(Red Hat:enterprise_linux:10) All versions No fix listed
redhat/kernel(Red Hat:rhel_els:6) All versions No fix listed
redhat/kernel(Red Hat:rhel_els:7) All versions No fix listed
redhat/kernel-rt(Red Hat:rhel_els:7) All versions No fix listed
redhat/kernel(Red Hat:enterprise_linux:8) All versions No fix listed
redhat/kernel-rt(Red Hat:enterprise_linux:8) All versions No fix listed
redhat/kernel(Red Hat:enterprise_linux:9) All versions No fix listed
redhat/kernel-rt(Red Hat:enterprise_linux:9) All versions No fix listed
redhat/openshift/ose-rhel-coreos-8(Red Hat:openshift:4) All versions No fix listed
redhat/openshift/ose-rhel-coreos-9(Red Hat:openshift:4) All versions No fix listed
redhat/openshift/ose-rhel-coreos-9(Red Hat:openshift:5) All versions No fix listed
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < 24bd9ba431b2daa263f3551bc2f09f6b4487f5ae 24bd9ba431b2daa263f3551bc2f09f6b4487f5ae
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < f8fabe1fe044f86abc42194b8f86dfd70212115f f8fabe1fe044f86abc42194b8f86dfd70212115f
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < e896a97f336c5edfc13066b57ed431cb3f64e68c e896a97f336c5edfc13066b57ed431cb3f64e68c
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < 6200fb2de579f268742a77b0f3d823cb0a8b1947 6200fb2de579f268742a77b0f3d823cb0a8b1947
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < 0eb06ebbbecb122f0df9a1f7f623f5255be741ed 0eb06ebbbecb122f0df9a1f7f623f5255be741ed
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < 6cadfa6f1f5896632d4223d3b7addb2a29fea74e 6cadfa6f1f5896632d4223d3b7addb2a29fea74e
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < 35b60549a956237488c89a2d85352e026e7d55b7 35b60549a956237488c89a2d85352e026e7d55b7
Linux kernel >= bfead3b2cb4607c71831423c3ee97d22cd0c9dcb, < 8ee2a09a1dbb257c9e828ad2497f8e4832dfb142 8ee2a09a1dbb257c9e828ad2497f8e4832dfb142
Linux kernel = 2.6.33 No fix listed
Linux kernel < 5.10.273 5.10.273
Linux kernel < 5.15.224 5.15.224
Linux kernel < 6.1.191 6.1.191
Linux kernel < 6.6.161 6.6.161
Linux kernel < 6.12.115 6.12.115
Show 175 more
ProductAffected versionsFixed in
Linux kernel < 6.18.59 6.18.59
Linux kernel < 7.2.13 7.2.13
Linux kernel < 7.3 7.3
ubuntu/linux(Ubuntu:22.04) All versions No fix listed
ubuntu/linux-kvm(Ubuntu:22.04) All versions No fix listed
ubuntu/linux-raspi(Ubuntu:22.04) All versions No fix listed
ubuntu/linux(Ubuntu:24.04) All versions No fix listed
ubuntu/linux-raspi(Ubuntu:24.04) All versions No fix listed
debian/linux(Debian:12) All versions No fix listed
debian/linux(Debian:12) = 6.1.106-1 No fix listed
debian/linux(Debian:12) = 6.1.106-2 No fix listed
debian/linux(Debian:12) = 6.1.106-3 No fix listed
debian/linux(Debian:12) = 6.1.112-1 No fix listed
debian/linux(Debian:12) = 6.1.115-1 No fix listed
debian/linux(Debian:12) = 6.1.119-1 No fix listed
debian/linux(Debian:12) = 6.1.123-1 No fix listed
debian/linux(Debian:12) = 6.1.124-1 No fix listed
debian/linux(Debian:12) = 6.1.128-1 No fix listed
debian/linux(Debian:12) = 6.1.129-1 No fix listed
debian/linux(Debian:12) = 6.1.133-1 No fix listed
debian/linux(Debian:12) = 6.1.135-1 No fix listed
debian/linux(Debian:12) = 6.1.137-1 No fix listed
debian/linux(Debian:12) = 6.1.139-1 No fix listed
debian/linux(Debian:12) = 6.1.140-1 No fix listed
debian/linux(Debian:12) = 6.1.147-1 No fix listed
debian/linux(Debian:12) = 6.1.148-1 No fix listed
debian/linux(Debian:12) = 6.1.153-1 No fix listed
debian/linux(Debian:12) = 6.1.158-1 No fix listed
debian/linux(Debian:12) = 6.1.159-1 No fix listed
debian/linux(Debian:12) = 6.1.162-1 No fix listed
debian/linux(Debian:12) = 6.1.164-1 No fix listed
debian/linux(Debian:12) = 6.1.170-1 No fix listed
debian/linux(Debian:12) = 6.1.170-2 No fix listed
debian/linux(Debian:12) = 6.1.170-3 No fix listed
debian/linux(Debian:12) = 6.1.172-1 No fix listed
debian/linux(Debian:12) = 6.1.174-1 No fix listed
debian/linux(Debian:12) = 6.1.176-1 No fix listed
debian/linux(Debian:12) = 6.1.177-1 No fix listed
debian/linux(Debian:12) = 6.1.180-1 No fix listed
debian/linux(Debian:12) = 6.1.187-1 No fix listed
debian/linux(Debian:12) = 6.1.190-1 No fix listed
debian/linux(Debian:12) = 6.1.27-1 No fix listed
debian/linux(Debian:12) = 6.1.37-1 No fix listed
debian/linux(Debian:12) = 6.1.38-1 No fix listed
debian/linux(Debian:12) = 6.1.38-2 No fix listed
debian/linux(Debian:12) = 6.1.38-2~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.38-3 No fix listed
debian/linux(Debian:12) = 6.1.38-4 No fix listed
debian/linux(Debian:12) = 6.1.38-4~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.52-1 No fix listed
debian/linux(Debian:12) = 6.1.55-1 No fix listed
debian/linux(Debian:12) = 6.1.55-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.64-1 No fix listed
debian/linux(Debian:12) = 6.1.66-1 No fix listed
debian/linux(Debian:12) = 6.1.67-1 No fix listed
debian/linux(Debian:12) = 6.1.69-1 No fix listed
debian/linux(Debian:12) = 6.1.69-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.76-1 No fix listed
debian/linux(Debian:12) = 6.1.76-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.82-1 No fix listed
debian/linux(Debian:12) = 6.1.85-1 No fix listed
debian/linux(Debian:12) = 6.1.90-1 No fix listed
debian/linux(Debian:12) = 6.1.90-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.94-1 No fix listed
debian/linux(Debian:12) = 6.1.94-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.98-1 No fix listed
debian/linux(Debian:12) = 6.1.99-1 No fix listed
debian/linux(Debian:12) = 6.10-1~exp1 No fix listed
debian/linux(Debian:12) = 6.10.1-1~exp1 No fix listed
debian/linux(Debian:12) = 6.10.11-1 No fix listed
debian/linux(Debian:12) = 6.10.11-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.10.12-1 No fix listed
debian/linux(Debian:12) = 6.10.3-1 No fix listed
debian/linux(Debian:12) = 6.10.4-1 No fix listed
debian/linux(Debian:12) = 6.10.6-1 No fix listed
debian/linux(Debian:12) = 6.10.6-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.10.7-1 No fix listed
debian/linux(Debian:12) = 6.10.9-1 No fix listed
debian/linux(Debian:12) = 6.11-1~exp1 No fix listed
debian/linux(Debian:12) = 6.11.10-1 No fix listed
debian/linux(Debian:12) = 6.11.10-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.11.2-1 No fix listed
debian/linux(Debian:12) = 6.11.4-1 No fix listed
debian/linux(Debian:12) = 6.11.5-1 No fix listed
debian/linux(Debian:12) = 6.11.5-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.11.6-1 No fix listed
debian/linux(Debian:12) = 6.11.7-1 No fix listed
debian/linux(Debian:12) = 6.11.9-1 No fix listed
debian/linux(Debian:12) = 6.11~rc4-1~exp1 No fix listed
debian/linux(Debian:12) = 6.11~rc5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.12.10-1 No fix listed
debian/linux(Debian:12) = 6.12.100-1 No fix listed
debian/linux(Debian:12) = 6.12.101-1 No fix listed
debian/linux(Debian:12) = 6.12.105-1 No fix listed
debian/linux(Debian:12) = 6.12.107-1 No fix listed
debian/linux(Debian:12) = 6.12.11-1 No fix listed
debian/linux(Debian:12) = 6.12.11-1+alpha No fix listed
debian/linux(Debian:12) = 6.12.11-1+alpha.1 No fix listed
debian/linux(Debian:12) = 6.12.111-1 No fix listed
debian/linux(Debian:12) = 6.12.113-1 No fix listed
debian/linux(Debian:12) = 6.12.115-1 No fix listed
debian/linux(Debian:12) = 6.12.115-2 No fix listed
debian/linux(Debian:12) = 6.12.116-1 No fix listed
debian/linux(Debian:12) = 6.12.12-1 No fix listed
debian/linux(Debian:12) = 6.12.12-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.13-1 No fix listed
debian/linux(Debian:12) = 6.12.15-1 No fix listed
debian/linux(Debian:12) = 6.12.16-1 No fix listed
debian/linux(Debian:12) = 6.12.17-1 No fix listed
debian/linux(Debian:12) = 6.12.19-1 No fix listed
debian/linux(Debian:12) = 6.12.20-1 No fix listed
debian/linux(Debian:12) = 6.12.21-1 No fix listed
debian/linux(Debian:12) = 6.12.22-1 No fix listed
debian/linux(Debian:12) = 6.12.22-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.25-1 No fix listed
debian/linux(Debian:12) = 6.12.27-1 No fix listed
debian/linux(Debian:12) = 6.12.27-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.29-1 No fix listed
debian/linux(Debian:12) = 6.12.3-1 No fix listed
debian/linux(Debian:12) = 6.12.30-1 No fix listed
debian/linux(Debian:12) = 6.12.30-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.31-1 No fix listed
debian/linux(Debian:12) = 6.12.32-1 No fix listed
debian/linux(Debian:12) = 6.12.32-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.33-1 No fix listed
debian/linux(Debian:12) = 6.12.33-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.35-1 No fix listed
debian/linux(Debian:12) = 6.12.35-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.37-1 No fix listed
debian/linux(Debian:12) = 6.12.38-1 No fix listed
debian/linux(Debian:12) = 6.12.38-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.41-1 No fix listed
debian/linux(Debian:12) = 6.12.43-1 No fix listed
debian/linux(Debian:12) = 6.12.43-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.48-1 No fix listed
debian/linux(Debian:12) = 6.12.5-1 No fix listed
debian/linux(Debian:12) = 6.12.57-1 No fix listed
debian/linux(Debian:12) = 6.12.57-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.6-1 No fix listed
debian/linux(Debian:12) = 6.12.63-1 No fix listed
debian/linux(Debian:12) = 6.12.63-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.69-1 No fix listed
debian/linux(Debian:12) = 6.12.69-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.73-1 No fix listed
debian/linux(Debian:12) = 6.12.73-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.74-1 No fix listed
debian/linux(Debian:12) = 6.12.74-2 No fix listed
debian/linux(Debian:12) = 6.12.74-2~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.8-1 No fix listed
debian/linux(Debian:12) = 6.12.85-1 No fix listed
debian/linux(Debian:12) = 6.12.85-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.86-1 No fix listed
debian/linux(Debian:12) = 6.12.86-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.88-1 No fix listed
debian/linux(Debian:12) = 6.12.88-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.9-1 No fix listed
debian/linux(Debian:12) = 6.12.9-1+alpha No fix listed
debian/linux(Debian:12) = 6.12.9-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.90-1 No fix listed
debian/linux(Debian:12) = 6.12.90-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.90-2 No fix listed
debian/linux(Debian:12) = 6.12.90-2~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.94-1 No fix listed
debian/linux(Debian:12) = 6.12.94-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.95-1 No fix listed
debian/linux(Debian:12) = 6.12.95-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.96-1 No fix listed
debian/linux(Debian:12) = 6.12~rc6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.10-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.11-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.2-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.3-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.4-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.6-1~exp1 No fix listed

References