{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-99256","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-09-25T10:25:14.404Z","datePublished":"2026-11-03T11:25:14.077Z","dateUpdated":"2026-11-03T11:40:45.109Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-11-03T11:40:45.109Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm cache: fix issue with background work locking\n\ndm cache used a rw_semaphore for background_work_lock. Write locks on\nrw_semaphores have strict owner semantics, but there was no guarantee\nthat the process that locked background_work_lock was the same process\nthat unlocked it. This can be easily seen using a kernel compiled with\nCONFIG_DEBUG_RWSEMS. Given a dm cache device <cache>, run: 'dmsetup\nsuspend <cache> && dmsetup resume <cache>'. This will trigger a kernel\nwarning:\n\nDEBUG_RWSEMS_WARN_ON((rwsem_owner(sem) != current) && !rwsem_test_oflags(sem, RWSEM_NONSPINNABLE))\n\ntriggered by cache_resume(). To fix this, switch from a rw_semaphore to\na spinlock and a wait queue. dm cache already has a wait queue and\nassociated counter, migration_wait and nr_allocated_migrations, that was\ngetting woken up when background work was getting completed, but wasn't\nactually used by anything. This is replaced by the background_work queue\nand counter."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-cache-target.c"],"versions":[{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"0c7a8cad7c96012a9157a189649e569d0390f384","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"f5db935d257023c3ef410bd39163b949b0e5a55d","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"6290507ecc0dd6dd40759729cbbbd49b1d2a63c4","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"8433fd005c25fd127021f67c9144a879fb585572","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"2f2cfa16dd0f4179bb988139dd37d00a42324f6c","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"73df2ff409f3db95029982fe3656329568e3715d","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"104f09e02038b0fc6bbb718b3976af029e15c1d0","status":"affected","versionType":"git"},{"version":"b29d4986d0da1a27cd35917cdb433672f5c95d7f","lessThan":"bc9781c0247de107876f32929f1637db93a42b34","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-cache-target.c"],"versions":[{"version":"4.12","status":"affected"},{"version":"0","lessThan":"4.12","status":"unaffected","versionType":"semver"},{"version":"5.10.273","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.224","lessThanOrEqual":"5.15.*","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":"4.12","versionEndExcluding":"5.10.273"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"5.15.224"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.6.161"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.12.115"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.18.59"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"7.2.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"7.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/0c7a8cad7c96012a9157a189649e569d0390f384"},{"url":"https://git.kernel.org/stable/c/f5db935d257023c3ef410bd39163b949b0e5a55d"},{"url":"https://git.kernel.org/stable/c/6290507ecc0dd6dd40759729cbbbd49b1d2a63c4"},{"url":"https://git.kernel.org/stable/c/8433fd005c25fd127021f67c9144a879fb585572"},{"url":"https://git.kernel.org/stable/c/2f2cfa16dd0f4179bb988139dd37d00a42324f6c"},{"url":"https://git.kernel.org/stable/c/73df2ff409f3db95029982fe3656329568e3715d"},{"url":"https://git.kernel.org/stable/c/104f09e02038b0fc6bbb718b3976af029e15c1d0"},{"url":"https://git.kernel.org/stable/c/bc9781c0247de107876f32929f1637db93a42b34"}],"title":"dm cache: fix issue with background work locking","x_generator":{"engine":"bippy-1.2.0"}}}}