Linux: scsi: mpi3mr: Fix target device refcount leak in mpi3mr_sas_port_add()
What fixes it
- 60a9aaac07f6470b252c4de40e7d8a6e25004093LinuxCVE List
- 58e3d2fbc8c914ed3dce2f7d915b3c4f4a3c76fbLinuxCVE List
- 040146f81d099006a354b0caacc7f01ca00f257eLinuxCVE List
- 06a7073b33b8f5cb0ee71e07dc669efffb1c7d58LinuxCVE List
- 1ccbe8c42009706af79e6629c70d42fc929aef2bLinuxCVE List
- 419d129f970aaa6567dbac366b0c93784bf9ec97LinuxCVE 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: mpi3mr: Fix target device refcount leak in mpi3mr_sas_port_add()
mpi3mr_get_tgtdev_by_addr() increments the target device kref when it returns a device. If a subsequent error triggers a goto out_fail after the tgtdev reference is acquired, the reference is never released because the out_fail path does not call mpi3mr_tgtdev_put(). This prevents the target device structure from ever being freed.
Add a tgtdev put in the out_fail path, guarded by a NULL check since tgtdev is only acquired for SAS_END_DEVICE types and the same cleanup path is shared by earlier error cases where tgtdev is still NULL.
Text from CVE List
Affected versions 14
- Linuxaffected: e22bae30667a7e74ed057e00fb6e8c79e0738de3 before 60a9aaac07f6470b252c4de40e7d8a6e25004093CVE List
- Linuxaffected: e22bae30667a7e74ed057e00fb6e8c79e0738de3 before 58e3d2fbc8c914ed3dce2f7d915b3c4f4a3c76fbCVE List
- Linuxaffected: e22bae30667a7e74ed057e00fb6e8c79e0738de3 before 040146f81d099006a354b0caacc7f01ca00f257eCVE List
- Linuxaffected: e22bae30667a7e74ed057e00fb6e8c79e0738de3 before 06a7073b33b8f5cb0ee71e07dc669efffb1c7d58CVE List
- Linuxaffected: e22bae30667a7e74ed057e00fb6e8c79e0738de3 before 1ccbe8c42009706af79e6629c70d42fc929aef2bCVE List
- Linuxaffected: e22bae30667a7e74ed057e00fb6e8c79e0738de3 before 419d129f970aaa6567dbac366b0c93784bf9ec97CVE List
- Linuxaffected: 6.1CVE List
- Linuxunaffected: all versions before 6.1CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 6
- git.kernel.org/stable/c/60a9aaac07f6470b252c4de40e7d8a6e25004093Referencevia CVE List
- git.kernel.org/stable/c/58e3d2fbc8c914ed3dce2f7d915b3c4f4a3c76fbReferencevia CVE List
- git.kernel.org/stable/c/040146f81d099006a354b0caacc7f01ca00f257eReferencevia CVE List
- git.kernel.org/stable/c/06a7073b33b8f5cb0ee71e07dc669efffb1c7d58Referencevia CVE List
- git.kernel.org/stable/c/1ccbe8c42009706af79e6629c70d42fc929aef2bReferencevia CVE List
- git.kernel.org/stable/c/419d129f970aaa6567dbac366b0c93784bf9ec97Referencevia CVE List