Description
In the Linux kernel, the following vulnerability has been resolved: scsi: libiscsi: Fix stale-data leak into the SCSI sense buffer iscsi_scsi_cmd_rsp() copies the sense data of a SCSI Response from the target-supplied data segment. The segment carries a 2-byte sense length followed by the sense bytes, so it must hold 2 + senselen bytes, but the bounds check only requires datalen >= senselen: senselen = get_unaligned_be16(data); if (datalen < senselen) goto invalid_datalen; memcpy(sc->sense_buffer, data + 2, min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE)); A target that returns a SCSI Response whose datalen equals senselen (with senselen <= SCSI_SENSE_BUFFERSIZE) makes the memcpy() from data + 2 read up to two bytes past the received data. Those bytes are stale conn->data contents and end up in the command's sense buffer, which is returned to userspace. Account for the 2-byte sense length prefix in the check.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < 812f1ae95b22419422972748f173b0916ee4d621affected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < fef6167e8149896cd81bea333fd51b1c91239149affected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < baa04572673125e4d5bc309b4077d1cb46cc78d1affected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < 7567f06abdefb1caf2d836107c4d08c5185c650eaffected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < 60499924faf4ef97e84228c20515218ef121facfaffected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < 3ef209ca0b4b68c75e9a814d90cc916026b5a6acaffected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < 1f07a897d43c63e6c9458bf77450defef39b5833affected7996a778ff8c717cb1a7a294475c59cc8f1e9fb8 to < 98b87885de4b7f605533a2860685f5689fce8e82affected
Linux Linux
Default version status: affected
2.6.18affected0 to < 2.6.18unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.151 to ≤ 6.6.*unaffected6.12.103 to ≤ 6.12.*unaffected6.18.44 to ≤ 6.18.*unaffected7.1.8 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/812f1ae95b22419422972748f173b0916ee4d621 ↗
- https://git.kernel.org/stable/c/fef6167e8149896cd81bea333fd51b1c91239149 ↗
- https://git.kernel.org/stable/c/baa04572673125e4d5bc309b4077d1cb46cc78d1 ↗
- https://git.kernel.org/stable/c/7567f06abdefb1caf2d836107c4d08c5185c650e ↗
- https://git.kernel.org/stable/c/60499924faf4ef97e84228c20515218ef121facf ↗
- https://git.kernel.org/stable/c/3ef209ca0b4b68c75e9a814d90cc916026b5a6ac ↗
- https://git.kernel.org/stable/c/1f07a897d43c63e6c9458bf77450defef39b5833 ↗
- https://git.kernel.org/stable/c/98b87885de4b7f605533a2860685f5689fce8e82 ↗