Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-99202— scsi: libsas: Fix SMP IO deadlock during HA resume

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 Linux 内核中,以下漏洞已得到修复: scsi: libsas: 修复高可用性(HA)恢复期间的 SMP I/O 死锁 在发出 SMP(扩展器管理协议)命令之前,会调用 来唤醒主机。然而,当该 SMP 命令本身是从 HA 恢复路径发出时, 会导致死锁:它会等待正在进行的恢复操作(此时设备状态为 ),而恢复操作本身又被阻塞在 中,等待同一个 SMP I/O 完成。 此死锁需要满足特定条件:系统中必须连接了通过扩展器(expander)挂载的 SATA 磁盘。在 调用 期间, 会触发 ,进而调用 请求 。对于此

AI Predicted 5.5 Difficulty: Hard

Possible ATT&CK Techniques 1 AI

T1499 · Endpoint Denial of Service

Affected Version Matrix 17

VendorProduct Version RangeStatus
Linux Linux 9e24b47ef81d43b3fb1b14294f09991640c79fcc< c9fb89246d9922ac0a45d504adb03e0bb971310c affected
3dbbbf656b850c9c8de05df6ad4a1dfc6ff02845< 08b95ef36a64c3ae4490794bed3c35d0c3354e85 affected
3dbbbf656b850c9c8de05df6ad4a1dfc6ff02845< 81e097a064b28b4a1f6ca1a8b433e659c1bd64c0 affected
09357f067122e2e28ec52e27013a1660a1571618 affected
e50a6523a603594a6d92cdecfe11997d639410a3 affected
c391b5899dd46485a5893696c12ae3e95a3a7325 affected
b9c44a14062093e9fc2d6bddc696cfceadb482d7 affected
6.18.44< 6.18.59 affected
… +9 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-99202

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
scsi: libsas: Fix SMP IO deadlock during HA resume
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: scsi: libsas: Fix SMP IO deadlock during HA resume smp_execute_task_sg() calls pm_runtime_get_sync() on the host before issuing an SMP command. When that command is itself issued from the HA resume path, the get_sync() deadlocks: it waits for the ongoing resume (the device is RPM_RESUMING), while the resume is blocked in sas_drain_work() waiting for that same SMP IO to complete. The deadlock needs an expander-attached SATA disk. During sas_resume_ha() -> sas_drain_work(), DISCE_RESUME -> sas_resume_sata() -> ata_sas_port_resume() requests ATA_EH_RESET, and the hard reset for such a disk is done via SMP PHY CONTROL (sas_ata_hard_reset() -> sas_phy_reset() -> sas_smp_phy_control() -> smp_execute_task_sg()). Direct-attached SATA resets through lldd_control_phy() and SSP devices use TMFs, so neither hits this. Replace the get_sync()/put_sync() pair with pm_runtime_get_noresume()/pm_runtime_put(). smp_execute_task_sg() only needs to hold off autosuspend while the SMP is in flight, and it must not try to resume the host: a sync resume issued from the HA resume path itself is what deadlocks, and by the time sas_resume_ha() runs, hw_init has already reinitialized the hardware, so the device is accessible without one. The usage reference is still required. Discovery work normally runs inside an event worker's PM reference, taken at sas_notify_port_event() notify time and held until the handler has flushed the disco queue. sas_rediscover_ex_phy() however requeues DISCE_REVALIDATE_DOMAIN from within the revalidation worker itself, and flush_workqueue() does not wait for work items queued during execution, so that chained revalidation runs with no outer PM reference - without the get_noresume(), its SMP could race autosuspend. For the BSG path, sas_smp_handler() is the only caller which may find the host autosuspended: expander SMP requests do not go through any SCSI device request queue, so nothing else in that path holds the host awake. Resume it there with pm_runtime_resume_and_get() and check the result.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 9e24b47ef81d43b3fb1b14294f09991640c79fcc ~ c9fb89246d9922ac0a45d504adb03e0bb971310c -
Linux Linux 7.2 -

II. Public POCs for CVE-2026-99202

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-99202

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-99202 (2)

Same Patch Batch · Linux · 2026-10-28 · 117 CVEs total

CVE-2026-99143 tracing: Keep the predicate limit separate from program capacity
CVE-2026-99129 selinux: fix BPF token permission checks
CVE-2026-99130 io_uring/cancel: don't spin on local work the task can't run
CVE-2026-99131 xfs: fix capability check in xfs
CVE-2026-99133 net/iucv: fix the recvmsg window update
CVE-2026-99132 xfs: don't hold buffer locks across sync transaction commit in xfs_sync_sb_buf
CVE-2026-99134 mac802154: fix data race and NULL deref on local->assoc_dev
CVE-2026-99135 dm-integrity: fix infinite loop on discard with large tag size
CVE-2026-99137 cifs: don't update i_size in cifs_do_truncate without a cached handle
CVE-2026-99136 dm-crypt: fix a tiny race condition in crypt_dec_pending
CVE-2026-99138 tcp: fix use-after-free in do_tcp_getsockopt(TCP_CC_INFO)
CVE-2026-99140 tracing: Fix hist trigger timestamps for buffered events
CVE-2026-99139 tcp: fix use-after-free in do_tcp_getsockopt(TCP_CONGESTION)
CVE-2026-99141 tracing: Fix crash in print_graph_function_event()
CVE-2026-99142 tracing: Check operator stack capacity before pushing
CVE-2026-99154 scsi: libiscsi: Reject a negative task index from parse_pdu_itt
CVE-2026-99151 drm/amd/display: Fix NULL sink dereference in USB4 bandwidth functions
CVE-2026-99153 scsi: libiscsi: Validate the ITT reflected in a Reject PDU
CVE-2026-99152 scsi: libiscsi: Validate the task named by a management response
CVE-2026-99150 drm/amdgpu: don't drop the runtime PM reference twice in amdgpu_gpr

Showing top 20 of 117 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities