In the Linux kernel, the following vulnerability has been resolved:
mac802154: Fix potential RCU dereference issue in mac802154scanworker
In the mac802154_scan_worker function, the scan_req->type field was
accessed after the RCU read-side critical section was unlocked. According
to RCU usage rules, this is illegal and can lead to unpredictable
behavior, such as accessing memory that has been updated or causing
use-after-free issues.
This possible bug was identified using a static analysis tool developed by myself, specifically designed to detect RCU-related issues.
To address this, the scan_req->type value is now stored in a local
variable scan_req_type while still within the RCU read-side critical
section. The scan_req_type is then used after the RCU lock is released,
ensuring that the type value is safely accessed without violating RCU
rules.
[
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"164544274298415939706044394412796376436",
"163636870083219671083001081924498265532",
"190247593320491023354860123506861797776",
"65308973465977054294461136372790328090",
"180415073045847703231896620121133858663",
"334129386490923180492388472844841209126",
"12302756342919431442015634783628689578",
"88515392105581322039894492863214073874",
"311898039237901976923301602934858083489",
"113466797217557589296180737087287539469",
"12706558751134042315348530839352327121",
"10639403606088766027112987554381656327"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@540138377b22f601f06f55ebfa3ca171dcab471a",
"target": {
"file": "net/mac802154/scan.c"
},
"id": "CVE-2024-50005-0514377c"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"164544274298415939706044394412796376436",
"163636870083219671083001081924498265532",
"190247593320491023354860123506861797776",
"65308973465977054294461136372790328090",
"180415073045847703231896620121133858663",
"334129386490923180492388472844841209126",
"12302756342919431442015634783628689578",
"88515392105581322039894492863214073874",
"311898039237901976923301602934858083489",
"113466797217557589296180737087287539469",
"12706558751134042315348530839352327121",
"10639403606088766027112987554381656327"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e676e4ea76bbe7f1156d8c326b9b6753849481c2",
"target": {
"file": "net/mac802154/scan.c"
},
"id": "CVE-2024-50005-22fb36a9"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"164544274298415939706044394412796376436",
"163636870083219671083001081924498265532",
"190247593320491023354860123506861797776",
"65308973465977054294461136372790328090",
"180415073045847703231896620121133858663",
"334129386490923180492388472844841209126",
"12302756342919431442015634783628689578",
"88515392105581322039894492863214073874",
"311898039237901976923301602934858083489",
"113466797217557589296180737087287539469",
"12706558751134042315348530839352327121",
"10639403606088766027112987554381656327"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bff1709b3980bd7f80be6786f64cc9a9ee9e56da",
"target": {
"file": "net/mac802154/scan.c"
},
"id": "CVE-2024-50005-2d61fac3"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1872.0,
"function_hash": "229270790283549608188276190773097928144"
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@540138377b22f601f06f55ebfa3ca171dcab471a",
"target": {
"file": "net/mac802154/scan.c",
"function": "mac802154_scan_worker"
},
"id": "CVE-2024-50005-6348c844"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1872.0,
"function_hash": "229270790283549608188276190773097928144"
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d18f669461811dfe2915d5554ab2a9834f810013",
"target": {
"file": "net/mac802154/scan.c",
"function": "mac802154_scan_worker"
},
"id": "CVE-2024-50005-8a8a5100"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1872.0,
"function_hash": "229270790283549608188276190773097928144"
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e676e4ea76bbe7f1156d8c326b9b6753849481c2",
"target": {
"file": "net/mac802154/scan.c",
"function": "mac802154_scan_worker"
},
"id": "CVE-2024-50005-94e08716"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1872.0,
"function_hash": "229270790283549608188276190773097928144"
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bff1709b3980bd7f80be6786f64cc9a9ee9e56da",
"target": {
"file": "net/mac802154/scan.c",
"function": "mac802154_scan_worker"
},
"id": "CVE-2024-50005-dbd3ce72"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"164544274298415939706044394412796376436",
"163636870083219671083001081924498265532",
"190247593320491023354860123506861797776",
"65308973465977054294461136372790328090",
"180415073045847703231896620121133858663",
"334129386490923180492388472844841209126",
"12302756342919431442015634783628689578",
"88515392105581322039894492863214073874",
"311898039237901976923301602934858083489",
"113466797217557589296180737087287539469",
"12706558751134042315348530839352327121",
"10639403606088766027112987554381656327"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d18f669461811dfe2915d5554ab2a9834f810013",
"target": {
"file": "net/mac802154/scan.c"
},
"id": "CVE-2024-50005-e9eb6a86"
}
]