In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: fix list corruption from reorder of WRITE ->lqueued
_blkcgrstatflush() can be run anytime, especially when blkcgroupbiostart is being executed.
If WRITE of ->lqueued is re-ordered with READ of 'bisc->lnode.next' in
the loop of _blkcgrstatflush(), next_bisc can be assigned with one
stat instance being added in blkcgroupbiostart(), then the local
list in _blkcgrstat_flush() could be corrupted.
Fix the issue by adding one barrier.
[
{
"target": {
"file": "block/blk-cgroup.c"
},
"deprecated": false,
"id": "CVE-2024-38384-3b90609d",
"digest": {
"line_hashes": [
"92724259448133510375629080824991011335",
"237902875056995328798457375195856365834",
"268884024548217242865030264879720336779"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@785298ab6b802afa75089239266b6bbea590809c",
"signature_version": "v1",
"signature_type": "Line"
},
{
"target": {
"file": "block/blk-cgroup.c",
"function": "__blkcg_rstat_flush"
},
"deprecated": false,
"id": "CVE-2024-38384-3e5aee4d",
"digest": {
"function_hash": "226302974616705360927603766358034010863",
"length": 765.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d0aac2363549e12cc79b8e285f13d5a9f42fd08e",
"signature_version": "v1",
"signature_type": "Function"
},
{
"target": {
"file": "block/blk-cgroup.c",
"function": "__blkcg_rstat_flush"
},
"deprecated": false,
"id": "CVE-2024-38384-6d7c24f5",
"digest": {
"function_hash": "226302974616705360927603766358034010863",
"length": 765.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@785298ab6b802afa75089239266b6bbea590809c",
"signature_version": "v1",
"signature_type": "Function"
},
{
"target": {
"file": "block/blk-cgroup.c"
},
"deprecated": false,
"id": "CVE-2024-38384-97dc66af",
"digest": {
"line_hashes": [
"92724259448133510375629080824991011335",
"237902875056995328798457375195856365834",
"268884024548217242865030264879720336779"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d0aac2363549e12cc79b8e285f13d5a9f42fd08e",
"signature_version": "v1",
"signature_type": "Line"
},
{
"target": {
"file": "block/blk-cgroup.c",
"function": "__blkcg_rstat_flush"
},
"deprecated": false,
"id": "CVE-2024-38384-c33dbbec",
"digest": {
"function_hash": "226302974616705360927603766358034010863",
"length": 765.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@714e59b5456e4d6e4295a9968c564abe193f461c",
"signature_version": "v1",
"signature_type": "Function"
},
{
"target": {
"file": "block/blk-cgroup.c"
},
"deprecated": false,
"id": "CVE-2024-38384-dec91958",
"digest": {
"line_hashes": [
"92724259448133510375629080824991011335",
"237902875056995328798457375195856365834",
"268884024548217242865030264879720336779"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@714e59b5456e4d6e4295a9968c564abe193f461c",
"signature_version": "v1",
"signature_type": "Line"
}
]