summaryrefslogtreecommitdiff
path: root/rust
diff options
context:
space:
mode:
authorCarlos Bilbao <carlos.bilbao@kernel.org>2026-04-14 21:07:28 -0700
committerMartin K. Petersen <martin.petersen@oracle.com>2026-04-21 21:08:25 -0400
commit2f3835771dff512750205aa5f5f61aec0f2b8cb7 (patch)
treeb525790dcadedc9edca3c88e0e7a62e314badd90 /rust
parentb06cf63d83d3b3744d3aefdd2f3ced25e99d7ec1 (diff)
scsi: target: iscsi: reject invalid size Extended CDB AHS
If ecdb_ahdr->ahslength is zero, two bugs follow: kmalloc(be16_to_cpu(ecdb_ahdr->ahslength) + 15, ...) allocates 15 bytes, but the immediately following memcpy writes ISCSI_CDB_SIZE (16) bytes into it, a one-byte heap overflow. Also: memcpy(cdb + ISCSI_CDB_SIZE, ecdb_ahdr->ecdb, be16_to_cpu(ecdb_ahdr->ahslength) - 1); (u16)0 - 1 promotes to (int)-1 which converts to SIZE_MAX as size_t, causing a massive out-of-bounds write. Reject ahslength == 0 with ISCSI_REASON_PROTOCOL_ERROR before the kmalloc. Also reject ahslength values that exceed the actual AHS buffer advertised. Fixes: 8f1f7d297bce ("scsi: target: iscsi: Add support for extended CDB AHS") Signed-off-by: Carlos Bilbao <carlos.bilbao@kernel.org> Reviewed-by: Dmitry Bogdanov <d.bogdanov@yadro.com> Link: https://patch.msgid.link/20260415040728.187680-1-carlos.bilbao@kernel.org Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'rust')
0 files changed, 0 insertions, 0 deletions