CVE-2026-99152 in Linuxinfo

Summary

by MITRE • 10/28/2026

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

scsi: libiscsi: Validate the task named by a management response

__iscsi_complete_pdu() fetches the task for five response types from one place and checks only that the index resolved:

case ISCSI_OP_LOGOUT_RSP: case ISCSI_OP_LOGIN_RSP: case ISCSI_OP_TEXT_RSP: case ISCSI_OP_SCSI_TMFUNC_RSP: case ISCSI_OP_NOOP_IN: task = iscsi_itt_to_task(conn, hdr->itt); if (!task) return ISCSI_ERR_BAD_ITT;

iscsi_itt_to_task() bounds the index against cmds_max and looks at nothing else, so a target can name any slot in the pool, including one that has never been used. task->conn is then NULL, and both iscsi_nop_out_rsp() and iscsi_complete_task() dereference it. One unsolicited NOP-In is enough; a Text Response carrying the same ITT crashes in iscsi_complete_task() instead.

Require the task to be in flight and not a SCSI command, the way iscsi_itt_to_ctask() does for the command opcodes.

[ 6.298634] Oops: general protection fault, probably for non-canonical address 0xdffffc000000000c: 0000 [#1] SMP KASAN NOPTI
[ 6.298642] KASAN: null-ptr-deref in range [0x0000000000000060-0x0000000000000067]
[ 6.298652] CPU: 1 UID: 0 PID: 111 Comm: iscsistart Not tainted 7.2.0-rc5-ISCSI1-gf5098b6bae76 #1 PREEMPT(lazy)
[ 6.298654] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[ 6.298656] RIP: 0010:iscsi_nop_out_rsp.constprop.0+0x46/0x160
[ 6.298691] Code: c1 ea 03 48 83 ec 08 80 3c 02 00 0f 85 f5 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 8b 6b 58 48 8d 7d 60 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 c0 00 00 00 48 8b 45 60 48 39 c3 74 50 48 b8 00
[ 6.298698] RSP: 0018:ffff88806c907be8 EFLAGS: 00010206
[ 6.298701] RAX: dffffc0000000000 RBX: ffff888006116800 RCX: 0000000000000020
[ 6.298702] RDX: 000000000000000c RSI: ffff88800525d578 RDI: 0000000000000060
[ 6.298703] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 6.298706] R10: 0000000000000020 R11: 0000000000000000 R12: 0000000000000000
[ 6.298706] R13: 000000000000002e R14: ffff8880056eb440 R15: ffff888006116800
[ 6.298707] FS: 00007fc02d1c2740(0000) GS:ffff8880b29bc000(0000) knlGS:0000000000000000
[ 6.298710] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6.298711] CR2: 000055fe3b56ddf8 CR3: 00000000053b9004 CR4: 0000000000770ef0
[ 6.298712] PKRU: 55555554
[ 6.298713] Call Trace:
[ 6.298714] <IRQ>
[ 6.298714] __iscsi_complete_pdu+0x13a8/0x22a0
[ 6.298758] iscsi_complete_pdu+0x54/0xa0
[ 6.298759] iscsi_tcp_hdr_recv_done+0x870/0x2c80
[ 6.298778] iscsi_tcp_recv_skb+0x31e/0xec0
[ 6.298800] iscsi_sw_tcp_recv+0x12f/0x390
[ 6.298804] __tcp_read_sock+0x1ab/0x810
[ 6.298812] iscsi_sw_tcp_data_ready+0x18b/0x510
[ 6.298814] tcp_rcv_established+0x1f56/0x3a00
[ 6.298842] tcp_v4_do_rcv+0x449/0x960
[ 6.298847] tcp_v4_rcv+0x2245/0x3bc0

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 10/28/2026

The Linux kernel's SCSI subsystem contains a critical input validation flaw within the iSCSI protocol implementation, specifically in the libiscsi module. This vulnerability arises from insufficient verification of task identifiers received during management responses. When processing specific response types such as Logout Response, Login Response, Text Response, SCSI Task Management Function Response, and No-op Input, the function __iscsi_complete_pdu() retrieves a corresponding task structure using the iscsi_itt_to_task() helper. This helper performs only a basic bounds check against cmds_max to ensure the index falls within the allocated pool range but fails to verify that the indexed slot actually contains an active or valid task associated with the connection. Consequently, if a malicious iSCSI target sends a response containing an invalid Task Tag (ITT) that points to an unused or uninitialized entry in the command table, the function returns a pointer to this empty structure rather than rejecting the packet outright.

The operational impact of this flaw is severe, leading directly to kernel instability and potential denial of service conditions. Because the retrieved task object corresponds to an unallocated slot, its conn field remains NULL. Subsequent code paths that handle these responses, specifically iscsi_nop_out_rsp() for unsolicited No-op In packets and iscsi_complete_task() for Text Responses, proceed to dereference this null pointer without checking for validity first. This results in a general protection fault or null-pointer dereference within the kernel space, as evidenced by crash logs showing access violations at non-canonical addresses. An attacker controlling an iSCSI target can exploit this condition remotely over the network by crafting malicious management response packets with carefully chosen ITT values to trigger these code paths and cause the host system to panic or become unresponsive.

From a security architecture perspective, this vulnerability is classified under CWE-20 as Improper Input Validation because the application fails to validate that user-controlled input (the task identifier from the network packet) corresponds to an expected state before use. It also aligns with CWE-476 regarding NULL Pointer Dereference, where the code assumes a pointer returned by a lookup function is valid without confirming its integrity or association with the current context. In terms of offensive security frameworks, this flaw facilitates Remote Code Execution via Denial of Service and can be mapped to MITRE ATT&CK technique T1059 which involves command execution through system compromise, although in this specific instance the primary outcome is service disruption rather than arbitrary code execution due to kernel protections like KASLR and SMEP.

The resolution implemented by the Linux community requires strict validation of the task state before processing management responses. The fix ensures that the identified task must be currently in flight and explicitly not a standard SCSI command, mirroring the logic already present in iscsi_itt_to_ctask() for other opcode types. This additional layer of verification prevents the system from operating on stale or non-existent context structures. To mitigate this risk until patches are applied, administrators should ensure that iSCSI targets are trusted and isolated within secure network segments. Implementing strict firewall rules to limit access to iSCSI ports (typically TCP 3260) to only authorized initiators can reduce the attack surface. Furthermore, keeping kernel versions updated with the latest security fixes is essential as this issue affects multiple recent releases including version 7.2 and earlier stable kernels.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/28/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!