In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix possible badness in FREE_STATEID
When multiple FREE_STATEIDs are sent for the same delegation stateid, it can lead to a possible either use-after-free or counter refcount underflow errors.
In nfsd4freestateid() under the client lock we find a delegation stateid, however the code drops the lock before calling nfs4putstid(), that allows another FREE_STATE to find the stateid again. The first one will proceed to then free the stateid which leads to either use-after-free or decrementing already zeroed counter.
[
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c88c150a467fcb670a1608e2272beeee3e86df6e",
"digest": {
"threshold": 0.9,
"line_hashes": [
"149935184899931748950291188659322239473",
"174957558661485657989929905442580869055",
"208499790130872597656638003683207824622",
"331604848327689246166928579948011019057"
]
},
"signature_type": "Line",
"target": {
"file": "fs/nfsd/nfs4state.c"
},
"id": "CVE-2024-50043-5f248c51",
"signature_version": "v1"
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ca9e472ce5c67daa3188a348ece8c02a0765039",
"digest": {
"threshold": 0.9,
"line_hashes": [
"149935184899931748950291188659322239473",
"174957558661485657989929905442580869055",
"208499790130872597656638003683207824622",
"331604848327689246166928579948011019057"
]
},
"signature_type": "Line",
"target": {
"file": "fs/nfsd/nfs4state.c"
},
"id": "CVE-2024-50043-7cb59a7f",
"signature_version": "v1"
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c88c150a467fcb670a1608e2272beeee3e86df6e",
"digest": {
"length": 1173.0,
"function_hash": "96377567124367159138142575252427236466"
},
"signature_type": "Function",
"target": {
"function": "nfsd4_free_stateid",
"file": "fs/nfsd/nfs4state.c"
},
"id": "CVE-2024-50043-b45e8b80",
"signature_version": "v1"
},
{
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ca9e472ce5c67daa3188a348ece8c02a0765039",
"digest": {
"length": 1173.0,
"function_hash": "96377567124367159138142575252427236466"
},
"signature_type": "Function",
"target": {
"function": "nfsd4_free_stateid",
"file": "fs/nfsd/nfs4state.c"
},
"id": "CVE-2024-50043-e7787981",
"signature_version": "v1"
}
]