]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
scsi: target: tcmu: Fix possible page UAF
authorXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
Fri, 11 Mar 2022 13:22:05 +0000 (21:22 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 20 May 2022 12:42:27 +0000 (14:42 +0200)
commitcaf9bb9da8a67df4c2d64f109f287a4d9386278c
tree9e46471666902835c69ce82f8aa0f56743a378af
parent5beefa32b8d30f69fa591895b18926494bfd8d07
scsi: target: tcmu: Fix possible page UAF

BugLink: https://bugs.launchpad.net/bugs/1969857
[ Upstream commit a6968f7a367f128d120447360734344d5a3d5336 ]

tcmu_try_get_data_page() looks up pages under cmdr_lock, but it does not
take refcount properly and just returns page pointer. When
tcmu_try_get_data_page() returns, the returned page may have been freed by
tcmu_blocks_release().

We need to get_page() under cmdr_lock to avoid concurrent
tcmu_blocks_release().

Link: https://lore.kernel.org/r/20220311132206.24515-1-xiaoguang.wang@linux.alibaba.com
Reviewed-by: Bodo Stroesser <bostroesser@gmail.com>
Signed-off-by: Xiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/target/target_core_user.c