Linux: scsi: xen/scsifront: Check for a NULL shadow entry on a backend response
What fixes it
- 1d91ec793d6c80eca963d426e0da832d40a062dfLinuxCVE List
- 15791e57f57f7050014d08cfe239d4aa1e6b94b0LinuxCVE List
- 8c8222c255772713eb36cde695777a1fce224917LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
scsi: xen/scsifront: Check for a NULL shadow entry on a backend response
scsifront_do_response() validates the rqid in a backend response against VSCSIIF_MAX_REQS before using it to index info->shadow[], but then dereferences the entry to test ->inflight without checking that the slot is populated. Shadow slots are NULL before a command is submitted (the host private area is zeroed at allocation) and are reset to NULL in _scsifront_put_rqid() once a request completes, so an in-range rqid that does not correspond to an outstanding request makes the frontend dereference a NULL pointer.
A malicious or buggy backend can thus crash the guest by returning a response whose rqid is in range but not in flight -- for example a spurious response before any command has been issued, or a duplicate of one already completed. The ring has only VSCSIIF_MAX_REQS (16) slots, so before the first command every in-range rqid selects a NULL slot.
Reject a response whose shadow slot is not populated.
Text from CVE List
Affected versions 8
- Linuxaffected: 6d1c2f48f3fcf5f42967938c8ba6b42ac6b44b43 before 1d91ec793d6c80eca963d426e0da832d40a062dfCVE List
- Linuxaffected: 6d1c2f48f3fcf5f42967938c8ba6b42ac6b44b43 before 15791e57f57f7050014d08cfe239d4aa1e6b94b0CVE List
- Linuxaffected: 6d1c2f48f3fcf5f42967938c8ba6b42ac6b44b43 before 8c8222c255772713eb36cde695777a1fce224917CVE List
- Linuxaffected: 5.19CVE List
- Linuxunaffected: all versions before 5.19CVE List
- Linuxunaffected: 6.18.59 through 6.18.*CVE List
- Linuxunaffected: 7.2.13 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List