Files
vuln-cve/data/2026/99xxx/CVE-2026-99202.json
T

246 lines
13 KiB
JSON

{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-99202",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2026-09-25T10:25:14.400Z",
"datePublished": "2026-10-28T10:35:56.827Z",
"dateUpdated": "2026-10-30T12:42:52.198Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-10-30T12:42:52.198Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: libsas: Fix SMP IO deadlock during HA resume\n\nsmp_execute_task_sg() calls pm_runtime_get_sync() on the host before\nissuing an SMP command. When that command is itself issued from the HA\nresume path, the get_sync() deadlocks: it waits for the ongoing resume\n(the device is RPM_RESUMING), while the resume is blocked in\nsas_drain_work() waiting for that same SMP IO to complete.\n\nThe deadlock needs an expander-attached SATA disk. During\nsas_resume_ha() -> sas_drain_work(), DISCE_RESUME -> sas_resume_sata()\n-> ata_sas_port_resume() requests ATA_EH_RESET, and the hard reset for\nsuch a disk is done via SMP PHY CONTROL (sas_ata_hard_reset() ->\nsas_phy_reset() -> sas_smp_phy_control() ->\nsmp_execute_task_sg()). Direct-attached SATA resets through\nlldd_control_phy() and SSP devices use TMFs, so neither hits this.\n\nReplace the get_sync()/put_sync() pair with\npm_runtime_get_noresume()/pm_runtime_put(). smp_execute_task_sg() only\nneeds to hold off autosuspend while the SMP is in flight, and it must\nnot try to resume the host: a sync resume issued from the HA resume path\nitself is what deadlocks, and by the time sas_resume_ha() runs, hw_init\nhas already reinitialized the hardware, so the device is accessible\nwithout one.\n\nThe usage reference is still required. Discovery work normally runs\ninside an event worker's PM reference, taken at sas_notify_port_event()\nnotify time and held until the handler has flushed the disco\nqueue. sas_rediscover_ex_phy() however requeues DISCE_REVALIDATE_DOMAIN\nfrom within the revalidation worker itself, and flush_workqueue() does\nnot wait for work items queued during execution, so that chained\nrevalidation runs with no outer PM reference - without the\nget_noresume(), its SMP could race autosuspend.\n\nFor the BSG path, sas_smp_handler() is the only caller which may find\nthe host autosuspended: expander SMP requests do not go through any SCSI\ndevice request queue, so nothing else in that path holds the host\nawake. Resume it there with pm_runtime_resume_and_get() and check the\nresult."
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/scsi/libsas/sas_expander.c"
],
"versions": [
{
"version": "09357f067122e2e28ec52e27013a1660a1571618",
"lessThan": "ab91a558084fdb8cca4919ffb769ca4328e91bbd",
"status": "affected",
"versionType": "git"
},
{
"version": "e50a6523a603594a6d92cdecfe11997d639410a3",
"lessThan": "6078a5369f9e8d22bb03b8890cb0bb47c91a5017",
"status": "affected",
"versionType": "git"
},
{
"version": "c391b5899dd46485a5893696c12ae3e95a3a7325",
"lessThan": "7004c18c38aaa2b87164b54dd77c320b4c63b89b",
"status": "affected",
"versionType": "git"
},
{
"version": "9e24b47ef81d43b3fb1b14294f09991640c79fcc",
"lessThan": "c9fb89246d9922ac0a45d504adb03e0bb971310c",
"status": "affected",
"versionType": "git"
},
{
"version": "3dbbbf656b850c9c8de05df6ad4a1dfc6ff02845",
"lessThan": "08b95ef36a64c3ae4490794bed3c35d0c3354e85",
"status": "affected",
"versionType": "git"
},
{
"version": "3dbbbf656b850c9c8de05df6ad4a1dfc6ff02845",
"lessThan": "81e097a064b28b4a1f6ca1a8b433e659c1bd64c0",
"status": "affected",
"versionType": "git"
},
{
"version": "b9c44a14062093e9fc2d6bddc696cfceadb482d7",
"status": "affected",
"versionType": "git"
},
{
"version": "6.1.183",
"lessThan": "6.1.191",
"status": "affected",
"versionType": "semver"
},
{
"version": "6.6.151",
"lessThan": "6.6.161",
"status": "affected",
"versionType": "semver"
},
{
"version": "6.12.103",
"lessThan": "6.12.115",
"status": "affected",
"versionType": "semver"
},
{
"version": "6.18.44",
"lessThan": "6.18.59",
"status": "affected",
"versionType": "semver"
},
{
"version": "7.1.8",
"lessThan": "7.2",
"status": "affected",
"versionType": "semver"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/scsi/libsas/sas_expander.c"
],
"versions": [
{
"version": "7.2",
"status": "affected"
},
{
"version": "0",
"lessThan": "7.2",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1.191",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.6.161",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.12.115",
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.18.59",
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "7.2.13",
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.1.183",
"versionEndExcluding": "6.1.191"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.6.151",
"versionEndExcluding": "6.6.161"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.12.103",
"versionEndExcluding": "6.12.115"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.18.44",
"versionEndExcluding": "6.18.59"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2",
"versionEndExcluding": "7.2.13"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2",
"versionEndExcluding": "7.3"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.1.8"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/ab91a558084fdb8cca4919ffb769ca4328e91bbd"
},
{
"url": "https://git.kernel.org/stable/c/6078a5369f9e8d22bb03b8890cb0bb47c91a5017"
},
{
"url": "https://git.kernel.org/stable/c/7004c18c38aaa2b87164b54dd77c320b4c63b89b"
},
{
"url": "https://git.kernel.org/stable/c/c9fb89246d9922ac0a45d504adb03e0bb971310c"
},
{
"url": "https://git.kernel.org/stable/c/08b95ef36a64c3ae4490794bed3c35d0c3354e85"
},
{
"url": "https://git.kernel.org/stable/c/81e097a064b28b4a1f6ca1a8b433e659c1bd64c0"
}
],
"title": "scsi: libsas: Fix SMP IO deadlock during HA resume",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
}
}