Description
In the Linux kernel, the following vulnerability has been resolved: scsi: sg: Allow waiting for commands to complete on removed device When a SCSI device is removed while in active use, currently sg will immediately return -ENODEV on any attempt to wait for active commands that were sent before the removal. This is problematic for commands that use SG_FLAG_DIRECT_IO since the data buffer may still be in use by the kernel when userspace frees or reuses it after getting ENODEV, leading to corrupted userspace memory (in the case of READ-type commands) or corrupted data being sent to the device (in the case of WRITE-type commands). This has been seen in practice when logging out of a iscsi_tcp session, where the iSCSI driver may still be processing commands after the device has been marked for removal. Change the policy to allow userspace to wait for active sg commands even when the device is being removed. Return -ENODEV only when there are no more responses to read.
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
c6517b7942fad663cc1cf3235cbe4207cf769332 to < bbc118acf7baf9e93c5e1314d14f481301af4d0faffectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < f5e61d9b4a699dd16f32d5f39eb1cf98d84c92edaffectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < ed9afd967cbfe7da2dc0d5e52c62a778dfe9f16baffectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < f135c65085eed869d10e4e7923ce1015288618daaffectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < 408bfa1489a3cfe7150b81ab0b0df99b23dd5411affectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < 8c004b7dbb340c1e5889f5fb9e5baa6f6e5303e8affectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < 35e60ec39e862159cb92923eefd5230d4a873cb9affectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < 03d8241112d5e3cccce1a01274a221099f07d2e1affectedc6517b7942fad663cc1cf3235cbe4207cf769332 to < 3455607fd7be10b449f5135c00dc306b85dc0d21affecteda0fe972f78eaaf352d593f9ed9079de590ceb286affectedb21c6d2897cd455fa396f4041a0c8165784e949faffected2.6.28.10 to < 2.6.29affected2.6.29.2 to < 2.6.30affected
Linux Linux
Default version status: affected
2.6.30affected0 to < 2.6.30unaffected4.9.326 to ≤ 4.9.*unaffected4.14.291 to ≤ 4.14.*unaffected4.19.256 to ≤ 4.19.*unaffected5.4.211 to ≤ 5.4.*unaffected5.10.137 to ≤ 5.10.*unaffected5.15.61 to ≤ 5.15.*unaffected5.18.18 to ≤ 5.18.*unaffected5.19.2 to ≤ 5.19.*unaffected6.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/bbc118acf7baf9e93c5e1314d14f481301af4d0f ↗
- https://git.kernel.org/stable/c/f5e61d9b4a699dd16f32d5f39eb1cf98d84c92ed ↗
- https://git.kernel.org/stable/c/ed9afd967cbfe7da2dc0d5e52c62a778dfe9f16b ↗
- https://git.kernel.org/stable/c/f135c65085eed869d10e4e7923ce1015288618da ↗
- https://git.kernel.org/stable/c/408bfa1489a3cfe7150b81ab0b0df99b23dd5411 ↗
- https://git.kernel.org/stable/c/8c004b7dbb340c1e5889f5fb9e5baa6f6e5303e8 ↗
- https://git.kernel.org/stable/c/35e60ec39e862159cb92923eefd5230d4a873cb9 ↗
- https://git.kernel.org/stable/c/03d8241112d5e3cccce1a01274a221099f07d2e1 ↗
- https://git.kernel.org/stable/c/3455607fd7be10b449f5135c00dc306b85dc0d21 ↗