{"id":"CVE-2026-80691","state":"PUBLISHED","title":"scsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE\n\nIn the iblock_execute_pr_out() function, PRO_PREEMPT,\nPRO_PREEMPT_AND_ABORT, and PRO_RELEASE all perform callback capability\nchecks through ops->pr_clear. The error check allows unimplemented hooks\nto pass through the gate, resulting dereferencing a NULL function\npointer.\n\nCheck whether the hooks that need to be called are supported.","publishedAt":"2026-08-28T06:52:54.933Z","updatedAt":"2026-10-16T19:26:33.427Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"3c60a8b4037dc35e365658fcbcb349a5d742ff49","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"a326b19cfb7775378b50acaa8d836ba44e29b4c2","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"bdd8a1297ef101bb5ac57e53b4fbe5e364afd8b1","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"f15bcf9a99b1b2683fcfa005b9b3680b5600581f","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"9c33222bd387312874fbe36ca8002e5c945b9653","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/target/target_core_iblock.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.5","versionType":"semver"},{"version":"6.6.151","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/target/target_core_iblock.c"]}],"references":["https://git.kernel.org/stable/c/3c60a8b4037dc35e365658fcbcb349a5d742ff49","https://git.kernel.org/stable/c/a326b19cfb7775378b50acaa8d836ba44e29b4c2","https://git.kernel.org/stable/c/bdd8a1297ef101bb5ac57e53b4fbe5e364afd8b1","https://git.kernel.org/stable/c/f15bcf9a99b1b2683fcfa005b9b3680b5600581f","https://git.kernel.org/stable/c/9c33222bd387312874fbe36ca8002e5c945b9653"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80691.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80691","state":"PUBLISHED","datePublished":"2026-08-28T06:52:54.933Z","dateUpdated":"2026-10-16T19:26:33.427Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.785Z"},"containers":{"cna":{"title":"scsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE\n\nIn the iblock_execute_pr_out() function, PRO_PREEMPT,\nPRO_PREEMPT_AND_ABORT, and PRO_RELEASE all perform callback capability\nchecks through ops->pr_clear. The error check allows unimplemented hooks\nto pass through the gate, resulting dereferencing a NULL function\npointer.\n\nCheck whether the hooks that need to be called are supported."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"3c60a8b4037dc35e365658fcbcb349a5d742ff49","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"a326b19cfb7775378b50acaa8d836ba44e29b4c2","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"bdd8a1297ef101bb5ac57e53b4fbe5e364afd8b1","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"f15bcf9a99b1b2683fcfa005b9b3680b5600581f","versionType":"git"},{"version":"394f811848827ad23d2b43e94e5d72a24cfbc39f","status":"affected","lessThan":"9c33222bd387312874fbe36ca8002e5c945b9653","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/target/target_core_iblock.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.5","versionType":"semver"},{"version":"6.6.151","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/target/target_core_iblock.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/3c60a8b4037dc35e365658fcbcb349a5d742ff49"},{"url":"https://git.kernel.org/stable/c/a326b19cfb7775378b50acaa8d836ba44e29b4c2"},{"url":"https://git.kernel.org/stable/c/bdd8a1297ef101bb5ac57e53b4fbe5e364afd8b1"},{"url":"https://git.kernel.org/stable/c/f15bcf9a99b1b2683fcfa005b9b3680b5600581f"},{"url":"https://git.kernel.org/stable/c/9c33222bd387312874fbe36ca8002e5c945b9653"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The bug is reached when a remote SCSI initiator sends PERSISTENT RESERVE OUT (PRO_PREEMPT, PRO_PREEMPT_AND_ABORT, or PRO_RELEASE) to a LIO target exporting an iblock LUN over iSCSI/FC/IB fabrics; iscsit_handle_scsi_cmd() drives transport_generic_new_cmd() to target_scsi3_emulate_pr_out() and iblock_execute_pr_out() without local shell access.\nAC:L - After an admin enables iblock PR passthrough (TRANSPORT_FLAG_PASSTHROUGH_PGR) on a backing block device with pr_ops, any authenticated or misconfigured unauthenticated initiator can deterministically issue the affected SCSI service actions; no races or victim timing are required beyond normal target I/O.\nPR:N - Exploitation requires only the ability to complete an iSCSI (or equivalent fabric) login and submit SCSI commands to the exposed LUN; it does not require Linux UID, capabilities, or root on the target host, and targets are often deployed with authentication disabled or open demo ACLs.\nUI:N - No interactive victim action is needed; the attacker triggers the NULL function-pointer dereference solely by sending a crafted PERSISTENT RESERVE OUT CDB and 24-byte parameter list over the storage network protocol.\nS:U - Impact is a kernel oops/panic on the storage target host running LIO; it does not cross VM, container, or IOMMU boundaries and stays within the kernel's single security authority.\nC:N - The failure is a direct NULL function-pointer call (ops->pr_preempt or ops->pr_release) when the wrong pr_clear guard passes; this causes an immediate kernel fault with no out-of-bounds read, use-after-free, or attacker-controlled memory disclosure primitive.\nI:N - The bug does not modify user data, on-disk metadata, or kernel memory contents; it only attempts to invoke a missing callback and crashes, providing no arbitrary write or code-execution primitive beyond the fault itself.\nA:H - Dereferencing a NULL block-layer PR callback from kernel context causes an oops or panic on the target server, denying all storage services hosted on that node until reboot and potentially taking down co-located workloads."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-29T06:22:14.617Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.6.151"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.12.103"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.18.44"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-80691","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-16T19:20:02.512746Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:26:33.427Z"}}]}}}