CVE-2026-93198
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: dm-pcache: validate the persisted dirty_tail chain at load The writeback worker follows the persisted dirty_tail chain, which is decoded from the cache device independently of the key_tail chain that cache_replay() walks and bounds. A crafted image, whose on-media fields are authenticated only by a crc32c with a fixed seed, can aim dirty_tail at a chain of last ksets that never terminates, so cache_writeback_fn() re-arms itself with no delay forever. Walk the dirty_tail chain once at load with the same hop cap cache_replay() uses and fail the table load with -EIO if it does not reach an end within n_segs hops.
View original CVE JSON
{
"id": "CVE-2026-93198",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-09-17T17:18:16.097",
"lastModified": "2026-10-19T10:17:10.473",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm-pcache: validate the persisted dirty_tail chain at load\n\nThe writeback worker follows the persisted dirty_tail chain, which is\ndecoded from the cache device independently of the key_tail chain that\ncache_replay() walks and bounds. A crafted image, whose on-media fields are\nauthenticated only by a crc32c with a fixed seed, can aim dirty_tail at a\nchain of last ksets that never terminates, so cache_writeback_fn() re-arms\nitself with no delay forever.\n\nWalk the dirty_tail chain once at load with the same hop cap cache_replay()\nuses and fail the table load with -EIO if it does not reach an end within\nn_segs hops."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"drivers/md/dm-pcache/cache.c",
"drivers/md/dm-pcache/cache.h",
"drivers/md/dm-pcache/cache_key.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "1d57628ff95b32d5cfa8d8f50e07690c161e9cf0",
"lessThan": "8195cf3f4a82ef49d9b0651c507ed0784caf23fb",
"versionType": "git",
"status": "affected"
},
{
"version": "1d57628ff95b32d5cfa8d8f50e07690c161e9cf0",
"lessThan": "4822a030929e0e77aa380722dc42e3e4c9edd346",
"versionType": "git",
"status": "affected"
},
{
"version": "1d57628ff95b32d5cfa8d8f50e07690c161e9cf0",
"lessThan": "58d620ee9e01d4bdbceaf2ae1450d307a2a9d58b",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"drivers/md/dm-pcache/cache.c",
"drivers/md/dm-pcache/cache.h",
"drivers/md/dm-pcache/cache_key.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "6.18",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.18",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.18.52",
"lessThanOrEqual": "6.18.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.6",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/4822a030929e0e77aa380722dc42e3e4c9edd346",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/58d620ee9e01d4bdbceaf2ae1450d307a2a9d58b",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/8195cf3f4a82ef49d9b0651c507ed0784caf23fb",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}