In the Linux kernel, the following vulnerability has been resolved:
fs/aio: Check IOCBAIORW before the struct aio_kiocb conversion
The first kiocbsetcancelfn() argument may point at a struct kiocb that is not embedded inside struct aiokiocb. With the current code, depending on the compiler, the req->kictx read happens either before the IOCBAIORW test or after that test. Move the req->kictx read such that it is guaranteed that the IOCBAIORW test happens first.
{ "vanir_signatures": [ { "signature_version": "v1", "target": { "file": "fs/aio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@18d5fc3c16cc317bd0e5f5dabe0660df415cadb7", "deprecated": false, "digest": { "line_hashes": [ "165589069350849338997817885961941384731", "297580709308519975641587896744498493780", "227555984023614100696935605235153085820", "123781859307729710997529857182005813705", "253902081320620977051508326705377022191", "16519353414836953525084799913400527836", "32176798434136627845177775022680485422", "309913423989991834651830004244172554203", "6210011134214165327645595897988782286", "87828247640311716779402007839934415277" ], "threshold": 0.9 }, "id": "CVE-2024-35815-0825eaa8" }, { "signature_version": "v1", "target": { "file": "fs/aio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@396dbbc18963648e9d1a4edbb55cfe08fa374d50", "deprecated": false, "digest": { "line_hashes": [ "165589069350849338997817885961941384731", "297580709308519975641587896744498493780", "227555984023614100696935605235153085820", "123781859307729710997529857182005813705", "253902081320620977051508326705377022191", "16519353414836953525084799913400527836", "32176798434136627845177775022680485422", "309913423989991834651830004244172554203", "6210011134214165327645595897988782286", "87828247640311716779402007839934415277" ], "threshold": 0.9 }, "id": "CVE-2024-35815-1dbcc4ea" }, { "signature_version": "v1", "target": { "function": "kiocb_set_cancel_fn", "file": "fs/aio.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@396dbbc18963648e9d1a4edbb55cfe08fa374d50", "deprecated": false, "digest": { "length": 452.0, "function_hash": "47112707098233641580847855780239622339" }, "id": "CVE-2024-35815-23de48c7" }, { "signature_version": "v1", "target": { "file": "fs/aio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@94eb0293703ced580f05dfbe5a57da5931e9aee2", "deprecated": false, "digest": { "line_hashes": [ "165589069350849338997817885961941384731", "297580709308519975641587896744498493780", "227555984023614100696935605235153085820", "123781859307729710997529857182005813705", "253902081320620977051508326705377022191", "16519353414836953525084799913400527836", "32176798434136627845177775022680485422", "309913423989991834651830004244172554203", "6210011134214165327645595897988782286", "87828247640311716779402007839934415277" ], "threshold": 0.9 }, "id": "CVE-2024-35815-24d7c0b2" }, { "signature_version": "v1", "target": { "function": "kiocb_set_cancel_fn", "file": "fs/aio.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@10ca82aff58434e122c7c757cf0497c335f993f3", "deprecated": false, "digest": { "length": 452.0, "function_hash": "47112707098233641580847855780239622339" }, "id": "CVE-2024-35815-8a68d325" }, { "signature_version": "v1", "target": { "function": "kiocb_set_cancel_fn", "file": "fs/aio.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@94eb0293703ced580f05dfbe5a57da5931e9aee2", "deprecated": false, "digest": { "length": 452.0, "function_hash": "47112707098233641580847855780239622339" }, "id": "CVE-2024-35815-9cd45e30" }, { "signature_version": "v1", "target": { "function": "kiocb_set_cancel_fn", "file": "fs/aio.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@18d5fc3c16cc317bd0e5f5dabe0660df415cadb7", "deprecated": false, "digest": { "length": 452.0, "function_hash": "47112707098233641580847855780239622339" }, "id": "CVE-2024-35815-bed0ce8a" }, { "signature_version": "v1", "target": { "file": "fs/aio.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@10ca82aff58434e122c7c757cf0497c335f993f3", "deprecated": false, "digest": { "line_hashes": [ "165589069350849338997817885961941384731", "297580709308519975641587896744498493780", "227555984023614100696935605235153085820", "123781859307729710997529857182005813705", "253902081320620977051508326705377022191", "16519353414836953525084799913400527836", "32176798434136627845177775022680485422", "309913423989991834651830004244172554203", "6210011134214165327645595897988782286", "87828247640311716779402007839934415277" ], "threshold": 0.9 }, "id": "CVE-2024-35815-eaaf9f4e" } ] }