CVE-2026-99152 in Linux
Résumé
par VulDB • 28/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
scsi: libiscsi : Valider la tâche nommée par une réponse de gestion
__iscsi_complete_pdu() récupère la tâche pour cinq types de réponses depuis un seul endroit et vérifie uniquement que l'index s'est résolu correctement :
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() borne l'index par rapport à cmds_max et n'examine rien d'autre ; un target peut donc nommer n'importe quel emplacement dans le pool, y compris celui qui n'a jamais été utilisé. task->conn est alors NULL, et iscsi_nop_out_rsp() ainsi que iscsi_complete_task() effectuent une déréférencement dessus. Un seul NOP-In non sollicité suffit ; une Text Response portant le même ITT provoque un plantage dans iscsi_complete_task().
Exiger que la tâche soit en cours d'exécution (in flight) et ne soit pas une commande SCSI, de la manière dont iscsi_itt_to_ctask() le fait pour les opcodes de commande.
[ 6.298634] Oops : general protection fault, probablement pour l'adresse non canonique 0xdffffc000000000c: 0000 [#1] SMP KASAN NOPTI
[ 6.298642] KASAN : null-ptr-deref dans la plage [0x0000000000000060-0x0000000000000067]
[ 6.298652] CPU: 1 UID : 0 PID : 111 Comm : iscsistart Non modifié (Not tainted) 7.2.0-rc5-ISCSI1-gf5098b6bae76 #1 PREEMPT(lazy)
[ 6.298654] Nom du matériel : 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
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.