{"id":"CVE-2023-52515","state":"PUBLISHED","title":"RDMA/srp: Do not call scsi_done() from srp_abort()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srp: Do not call scsi_done() from srp_abort()\n\nAfter scmd_eh_abort_handler() has called the SCSI LLD eh_abort_handler\ncallback, it performs one of the following actions:\n* Call scsi_queue_insert().\n* Call scsi_finish_command().\n* Call scsi_eh_scmd_add().\nHence, SCSI abort handlers must not call scsi_done(). Otherwise all\nthe above actions would trigger a use-after-free. Hence remove the\nscsi_done() call from srp_abort(). Keep the srp_free_req() call\nbefore returning SUCCESS because we may not see the command again if\nSUCCESS is returned.","publishedAt":"2024-03-02T21:52:25.863Z","updatedAt":"2026-08-05T09:10:20.389Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"26788a5b48d9d5cd3283d777d238631c8cd7495a","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"b9bdffb3f9aaeff8379c83f5449c6b42cb71c2b5","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"2b298f9181582270d5e95774e5a6c7a7fb5b1206","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"05a10b316adaac1f322007ca9a0383b410d759cc","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"e193b7955dfad68035b983a0011f4ef3590c85eb","versionType":"git"},{"version":"738589592a04180e39b6fb5fe8205d85b7dc69f6","status":"affected","versionType":"git"},{"version":"0575df129e2eb4a801beae0e6e041787480f42b9","status":"affected","versionType":"git"},{"version":"22fb582405002812d8fb89d0ed1264e97d3d25ad","status":"affected","versionType":"git"},{"version":"39d6594c457c4728794cb4c3c7be53f93f1ef3ae","status":"affected","versionType":"git"},{"version":"b3f3b814add77a464911df0080d812b18f61ff38","status":"affected","versionType":"git"},{"version":"3.0.45","status":"affected","lessThan":"3.1","versionType":"semver"},{"version":"3.2.32","status":"affected","lessThan":"3.3","versionType":"semver"},{"version":"3.4.13","status":"affected","lessThan":"3.5","versionType":"semver"},{"version":"3.5.6","status":"affected","lessThan":"3.6","versionType":"semver"},{"version":"3.6.1","status":"affected","lessThan":"3.7","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/ulp/srp/ib_srp.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.7","versionType":"semver"},{"version":"5.10.199","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.136","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.57","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.5.7","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/ulp/srp/ib_srp.c"]}],"references":["https://git.kernel.org/stable/c/26788a5b48d9d5cd3283d777d238631c8cd7495a","https://git.kernel.org/stable/c/b9bdffb3f9aaeff8379c83f5449c6b42cb71c2b5","https://git.kernel.org/stable/c/2b298f9181582270d5e95774e5a6c7a7fb5b1206","https://git.kernel.org/stable/c/05a10b316adaac1f322007ca9a0383b410d759cc","https://git.kernel.org/stable/c/e193b7955dfad68035b983a0011f4ef3590c85eb"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:33.064Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/52xxx/CVE-2023-52515.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-52515","state":"PUBLISHED","datePublished":"2024-03-02T21:52:25.863Z","dateUpdated":"2026-08-05T09:10:20.389Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-02-20T12:30:33.316Z"},"containers":{"cna":{"title":"RDMA/srp: Do not call scsi_done() from srp_abort()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srp: Do not call scsi_done() from srp_abort()\n\nAfter scmd_eh_abort_handler() has called the SCSI LLD eh_abort_handler\ncallback, it performs one of the following actions:\n* Call scsi_queue_insert().\n* Call scsi_finish_command().\n* Call scsi_eh_scmd_add().\nHence, SCSI abort handlers must not call scsi_done(). Otherwise all\nthe above actions would trigger a use-after-free. Hence remove the\nscsi_done() call from srp_abort(). Keep the srp_free_req() call\nbefore returning SUCCESS because we may not see the command again if\nSUCCESS is returned."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"26788a5b48d9d5cd3283d777d238631c8cd7495a","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"b9bdffb3f9aaeff8379c83f5449c6b42cb71c2b5","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"2b298f9181582270d5e95774e5a6c7a7fb5b1206","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"05a10b316adaac1f322007ca9a0383b410d759cc","versionType":"git"},{"version":"d8536670916a685df116b5c2cb256573fd25e4e3","status":"affected","lessThan":"e193b7955dfad68035b983a0011f4ef3590c85eb","versionType":"git"},{"version":"738589592a04180e39b6fb5fe8205d85b7dc69f6","status":"affected","versionType":"git"},{"version":"0575df129e2eb4a801beae0e6e041787480f42b9","status":"affected","versionType":"git"},{"version":"22fb582405002812d8fb89d0ed1264e97d3d25ad","status":"affected","versionType":"git"},{"version":"39d6594c457c4728794cb4c3c7be53f93f1ef3ae","status":"affected","versionType":"git"},{"version":"b3f3b814add77a464911df0080d812b18f61ff38","status":"affected","versionType":"git"},{"version":"3.0.45","status":"affected","lessThan":"3.1","versionType":"semver"},{"version":"3.2.32","status":"affected","lessThan":"3.3","versionType":"semver"},{"version":"3.4.13","status":"affected","lessThan":"3.5","versionType":"semver"},{"version":"3.5.6","status":"affected","lessThan":"3.6","versionType":"semver"},{"version":"3.6.1","status":"affected","lessThan":"3.7","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/ulp/srp/ib_srp.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.7","versionType":"semver"},{"version":"5.10.199","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.136","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.57","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.5.7","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/ulp/srp/ib_srp.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/26788a5b48d9d5cd3283d777d238631c8cd7495a"},{"url":"https://git.kernel.org/stable/c/b9bdffb3f9aaeff8379c83f5449c6b42cb71c2b5"},{"url":"https://git.kernel.org/stable/c/2b298f9181582270d5e95774e5a6c7a7fb5b1206"},{"url":"https://git.kernel.org/stable/c/05a10b316adaac1f322007ca9a0383b410d759cc"},{"url":"https://git.kernel.org/stable/c/e193b7955dfad68035b983a0011f4ef3590c85eb"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - ib_srp is the SRP initiator and supports RDMA CM to IP targets (RoCE/iWARP); a malicious or compromised SRP target drives command timeouts and abort-TM completions over the network to reach srp_abort(), analogous to other malicious-peer storage/network protocol bugs.\nAC:L - The remote target fully controls both sides of the trigger—withholding command completions to force SCSI timeouts and successfully acknowledging SRP_TSK_ABORT_TASK so srp_send_tsk_mgmt() returns success and the buggy scsi_done() path runs—with no uncontrolled race or rare layout dependency.\nPR:N - Once an SRP session exists, the peer target needs no local account or capability on the initiator; fabric/login identity is sufficient and no further host credentials are checked on the abort path.\nUI:N - In the highest-impact deployment, SRP LUNs are already connected and under normal I/O; the attacker only needs to stall in-flight commands and ACK aborts, with no additional victim mount or interactive action at exploit time.\nS:U - The use-after-free corrupts scsi_cmnd/block-layer state inside the initiator host kernel under a single security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - The bug is an explicit use-after-free from calling scsi_done() in the abort handler while scmd_eh_abort_handler() still runs scsi_finish_command()/scsi_queue_insert()/scsi_eh_scmd_add() on the same command, which per guidance enables arbitrary kernel read primitives via object reuse.\nI:H - The same UAF on the SCSI command/request object is heap memory corruption that can be groomed for arbitrary write and control-flow hijack once the freed object is reclaimed.\nA:H - Double-completing or otherwise operating on the freed scsi_cmnd reliably causes kernel oops/panic or severe SCSI error-handler failure even when not fully exploited."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T09:10:20.389Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"5.10.199"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"5.15.136"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.1.57"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.5.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.0.45"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2.32"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/26788a5b48d9d5cd3283d777d238631c8cd7495a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b9bdffb3f9aaeff8379c83f5449c6b42cb71c2b5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/2b298f9181582270d5e95774e5a6c7a7fb5b1206","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/05a10b316adaac1f322007ca9a0383b410d759cc","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e193b7955dfad68035b983a0011f4ef3590c85eb","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T23:03:20.699Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2023-52515","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T15:56:46.822904Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-11T17:33:41.155Z"}}]}}}