In the Linux kernel, the following vulnerability has been resolved:
block: RCU protect disk->convzonesbitmap
Ensure that a disk revalidation changing the conventional zones bitmap of a disk does not cause invalid memory references when using the diskzoneisconv() helper by RCU protecting the disk->convzones_bitmap pointer.
diskzoneisconv() is modified to operate under the RCU read lock and the function disksetconvzonesbitmap() is added to update a disk convzonesbitmap pointer using rcureplacepointer() with the disk zonewplugs_lock spinlock held.
diskfreezoneresources() is modified to call diskupdatezoneresources() with a NULL bitmap pointer to free the disk convzonesbitmap. disksetconvzonesbitmap() is also used in diskupdatezone_resources() to set the new (revalidated) bitmap and free the old one.
[
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "block/blk-zoned.c",
"function": "disk_free_zone_resources"
},
"digest": {
"length": 507.0,
"function_hash": "5186370808526258881098829139454114104"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@493326c4f10cc71a42c27fdc97ce112182ee4cbc",
"signature_version": "v1",
"id": "CVE-2024-57875-064e374f"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "block/blk-zoned.c",
"function": "blk_revalidate_disk_zones"
},
"digest": {
"length": 1406.0,
"function_hash": "311532193280353376163653366187175079749"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@493326c4f10cc71a42c27fdc97ce112182ee4cbc",
"signature_version": "v1",
"id": "CVE-2024-57875-18ed292e"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "block/blk-zoned.c",
"function": "disk_zone_is_conv"
},
"digest": {
"length": 193.0,
"function_hash": "100132249184360300259450097776112716763"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@493326c4f10cc71a42c27fdc97ce112182ee4cbc",
"signature_version": "v1",
"id": "CVE-2024-57875-457ad57f"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "include/linux/blkdev.h"
},
"digest": {
"line_hashes": [
"12558857352983666523394930491947977832",
"118413198846448171097739563747278343676",
"220610591402680184420634440462916417842",
"171689818489617188238272464686457187306"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@493326c4f10cc71a42c27fdc97ce112182ee4cbc",
"signature_version": "v1",
"id": "CVE-2024-57875-a6bda69e"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "block/blk-zoned.c"
},
"digest": {
"line_hashes": [
"24275806170975398416110871975836522244",
"161350485900420760420785387890611133364",
"52582902395279720851517536197830770164",
"198180343335825899343871157201127835773",
"294436055770203858210205908456066907771",
"169244040632831581860701153894579486604",
"175389850402981431168222835476722157506",
"208340396211856424453399272874083887268",
"87561341383639350633080339770477316426",
"144755001524944347593301111091074806388",
"43491884820386013507827227980722445782",
"49891365378124708631514704519444697259",
"266561408798065315664047000601852098779",
"121009737129256122898955646601740535054",
"27435578311263807380219446311446478651",
"41994180602231667994597078314028176187",
"241217886232496173918713092913538750522",
"67500259317847652260255131184752194272",
"138456876200870177710851475867639985362",
"124033239646049197640913028910881625527",
"141932796436296889060735721845145442239",
"11190888085831813035576733230447601076",
"213610864996052766383789096912500998856",
"306112065769359627107399864858258172058",
"128158289549678876236288694404831027489",
"269180039287813611069794027696529721407",
"340256555014784954427240227761995181108",
"210336959608712491356203800541488200626",
"81079520062555895079062955457286845230"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@493326c4f10cc71a42c27fdc97ce112182ee4cbc",
"signature_version": "v1",
"id": "CVE-2024-57875-d5d53e26"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "block/blk-zoned.c",
"function": "disk_update_zone_resources"
},
"digest": {
"length": 1312.0,
"function_hash": "149579043054743170876677138732537606264"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@493326c4f10cc71a42c27fdc97ce112182ee4cbc",
"signature_version": "v1",
"id": "CVE-2024-57875-fac9884f"
}
]