In the Linux kernel, the following vulnerability has been resolved:
kobject: Add sanity check for kset->kobj.ktype in kset_register()
When I register a kset in the following way: static struct kset mykset; kobjectsetname(&mykset.kobj, "mykset"); ret = ksetregister(&my_kset);
A null pointer dereference exception is occurred: [ 4453.568337] Unable to handle kernel NULL pointer dereference at \ virtual address 0000000000000028 ... ... [ 4453.810361] Call trace: [ 4453.813062] kobjectgetownership+0xc/0x34 [ 4453.817493] kobjectaddinternal+0x98/0x274 [ 4453.822005] ksetregister+0x5c/0xb4 [ 4453.825820] mykobjinit+0x44/0x1000 [mykset] ... ...
Because I didn't initialize my_kset.kobj.ktype.
According to the description in Documentation/core-api/kobject.rst: - A ktype is the type of object that embeds a kobject. Every structure that embeds a kobject needs a corresponding ktype.
So add sanity check to make sure kset->kobj.ktype is not NULL.
[
{
"id": "CVE-2023-53480-3debe0b7",
"signature_type": "Line",
"digest": {
"line_hashes": [
"32419423070966835034438206475977501051",
"282380616988388750652785291206202766877",
"104289278148583297492590118454089974477"
],
"threshold": 0.9
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@964e025ceefdf75da46b0133d0c2790de451aeec",
"target": {
"file": "lib/kobject.c"
}
},
{
"id": "CVE-2023-53480-619429c5",
"signature_type": "Function",
"digest": {
"length": 216.0,
"function_hash": "241647986973307127317481318943340352356"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@964e025ceefdf75da46b0133d0c2790de451aeec",
"target": {
"function": "kset_register",
"file": "lib/kobject.c"
}
},
{
"id": "CVE-2023-53480-61ae6752",
"signature_type": "Function",
"digest": {
"length": 216.0,
"function_hash": "241647986973307127317481318943340352356"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f3f6bf22a4f5ba649cf26ae4670de5c7f861bdef",
"target": {
"function": "kset_register",
"file": "lib/kobject.c"
}
},
{
"id": "CVE-2023-53480-82f2ae0a",
"signature_type": "Line",
"digest": {
"line_hashes": [
"32419423070966835034438206475977501051",
"282380616988388750652785291206202766877",
"104289278148583297492590118454089974477"
],
"threshold": 0.9
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f3f6bf22a4f5ba649cf26ae4670de5c7f861bdef",
"target": {
"file": "lib/kobject.c"
}
}
]