CVE-2026-98478 (GCVE-0-2026-98478)
Vulnerability from cvelistv5
Published
2026-10-18 15:15
Modified
2026-10-19 09:20
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: ufs: core: Keep internal commands dispatchable during error handling
Commit 08b12cda6c44 ("scsi: ufs: core: Switch to scsi_get_internal_cmd()")
switched UFS internal commands to allocate requests on
hba->host->pseudo_sdev->request_queue, which shares the host tagset with
regular LUNs.
During error recovery, ufshcd_err_handling_prepare() calls
blk_mq_quiesce_tagset(&hba->host->tag_set), marking all queues in the
tagset as quiesced, including pseudo_sdev->request_queue. When
ufshcd_verify_dev_init() subsequently issues internal commands (e.g. NOP
OUT UPIU) via blk_execute_rq(), blk_mq_run_hw_queue() skips running the
quiesced queue, resulting in an unrecoverable circular wait deadlock.
Keep quiescing the tagset and unquiesce the pseudo SCSI device on top of
that, so internal commands stay dispatchable while the logical units remain
quiesced. Re-quiesce the pseudo device before unquiescing the tagset so
that quiesce_depth stays balanced.
Clock scaling and ufshcd_pause_command_processing() are unaffected: they
keep quiescing the whole tagset, internal commands included.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/ufs/core/ufshcd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9f6f4840def931814c106fc800f57a2d26befee6",
"status": "affected",
"version": "08b12cda6c44dc015bcc152613c35ee0ae8f37b9",
"versionType": "git"
},
{
"lessThan": "b52d695d062095327b944acf7daabbc816ab319b",
"status": "affected",
"version": "08b12cda6c44dc015bcc152613c35ee0ae8f37b9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/ufs/core/ufshcd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.19"
},
{
"lessThan": "6.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.9",
"versionStartIncluding": "6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: ufs: core: Keep internal commands dispatchable during error handling\n\nCommit 08b12cda6c44 (\"scsi: ufs: core: Switch to scsi_get_internal_cmd()\")\nswitched UFS internal commands to allocate requests on\nhba-\u003ehost-\u003epseudo_sdev-\u003erequest_queue, which shares the host tagset with\nregular LUNs.\n\nDuring error recovery, ufshcd_err_handling_prepare() calls\nblk_mq_quiesce_tagset(\u0026hba-\u003ehost-\u003etag_set), marking all queues in the\ntagset as quiesced, including pseudo_sdev-\u003erequest_queue. When\nufshcd_verify_dev_init() subsequently issues internal commands (e.g. NOP\nOUT UPIU) via blk_execute_rq(), blk_mq_run_hw_queue() skips running the\nquiesced queue, resulting in an unrecoverable circular wait deadlock.\n\nKeep quiescing the tagset and unquiesce the pseudo SCSI device on top of\nthat, so internal commands stay dispatchable while the logical units remain\nquiesced. Re-quiesce the pseudo device before unquiescing the tagset so\nthat quiesce_depth stays balanced.\n\nClock scaling and ufshcd_pause_command_processing() are unaffected: they\nkeep quiescing the whole tagset, internal commands included."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:20:15.817Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9f6f4840def931814c106fc800f57a2d26befee6"
},
{
"url": "https://git.kernel.org/stable/c/b52d695d062095327b944acf7daabbc816ab319b"
}
],
"title": "scsi: ufs: core: Keep internal commands dispatchable during error handling",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98478",
"datePublished": "2026-10-18T15:15:52.338Z",
"dateReserved": "2026-09-25T10:25:14.351Z",
"dateUpdated": "2026-10-19T09:20:15.817Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…