In the Linux kernel, the following vulnerability has been resolved:
KEYS: prevent NULL pointer dereference in findasymmetrickey()
In findasymmetrickey(), if all NULLs are passed in the id{0,1,2} arguments, the kernel will first emit WARN but then have an oops because id2 gets dereferenced anyway.
Add the missing id2 check and move WARNON() to the final else branch to avoid duplicate NULL checks.
Found by Linux Verification Center (linuxtesting.org) with Svace static analysis tool.
[
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-47743-2be5e24d",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c",
"function": "find_asymmetric_key"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13b5b401ead95b5d8266f64904086c55b6024900",
"digest": {
"function_hash": "261720498016457514827205203813092295545",
"length": 1624.0
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-47743-34108858",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c",
"function": "find_asymmetric_key"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70fd1966c93bf3bfe3fe6d753eb3d83a76597eef",
"digest": {
"function_hash": "261720498016457514827205203813092295545",
"length": 1624.0
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-47743-6bd4bd4a",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c",
"function": "find_asymmetric_key"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3322fa8f2aa40b0b3651034cd541647a600cc6c0",
"digest": {
"function_hash": "261720498016457514827205203813092295545",
"length": 1624.0
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-47743-87879577",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a3765b497a4f5224cb2f7a6a2d3357d3066214ee",
"digest": {
"line_hashes": [
"241386404744317133131770759213999877371",
"269725395366411278125554898339276893452",
"265055125224325034139423575803780999493",
"82926099711673485437290222122170241238",
"158836181761592961169473929089358867024",
"326499847421401661556641321036077845645",
"210917925821236856112974867344023961651",
"163066259411068153745354965615263316436",
"237836839483021823810964507988386072639",
"4537489317809881491933203372009781769",
"238288599533848857901833711223039481152",
"135424646632932988677169276316656261884",
"267814920509653315462340619100659216274"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-47743-8b9aebf8",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c",
"function": "find_asymmetric_key"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0d3b0706ada15c333e6f9faf19590ff715e45d1e",
"digest": {
"function_hash": "261720498016457514827205203813092295545",
"length": 1624.0
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-47743-9e1d0f61",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0d3b0706ada15c333e6f9faf19590ff715e45d1e",
"digest": {
"line_hashes": [
"241386404744317133131770759213999877371",
"269725395366411278125554898339276893452",
"265055125224325034139423575803780999493",
"82926099711673485437290222122170241238",
"158836181761592961169473929089358867024",
"326499847421401661556641321036077845645",
"210917925821236856112974867344023961651",
"163066259411068153745354965615263316436",
"237836839483021823810964507988386072639",
"4537489317809881491933203372009781769",
"238288599533848857901833711223039481152",
"135424646632932988677169276316656261884",
"267814920509653315462340619100659216274"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-47743-a20649c5",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c",
"function": "find_asymmetric_key"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a3765b497a4f5224cb2f7a6a2d3357d3066214ee",
"digest": {
"function_hash": "261720498016457514827205203813092295545",
"length": 1624.0
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-47743-bb66f73d",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@70fd1966c93bf3bfe3fe6d753eb3d83a76597eef",
"digest": {
"line_hashes": [
"241386404744317133131770759213999877371",
"269725395366411278125554898339276893452",
"265055125224325034139423575803780999493",
"82926099711673485437290222122170241238",
"158836181761592961169473929089358867024",
"326499847421401661556641321036077845645",
"210917925821236856112974867344023961651",
"163066259411068153745354965615263316436",
"237836839483021823810964507988386072639",
"4537489317809881491933203372009781769",
"238288599533848857901833711223039481152",
"135424646632932988677169276316656261884",
"267814920509653315462340619100659216274"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-47743-bb6ed48c",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@13b5b401ead95b5d8266f64904086c55b6024900",
"digest": {
"line_hashes": [
"241386404744317133131770759213999877371",
"269725395366411278125554898339276893452",
"265055125224325034139423575803780999493",
"82926099711673485437290222122170241238",
"158836181761592961169473929089358867024",
"326499847421401661556641321036077845645",
"210917925821236856112974867344023961651",
"163066259411068153745354965615263316436",
"237836839483021823810964507988386072639",
"4537489317809881491933203372009781769",
"238288599533848857901833711223039481152",
"135424646632932988677169276316656261884",
"267814920509653315462340619100659216274"
],
"threshold": 0.9
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-47743-da45a817",
"target": {
"file": "crypto/asymmetric_keys/asymmetric_type.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3322fa8f2aa40b0b3651034cd541647a600cc6c0",
"digest": {
"line_hashes": [
"241386404744317133131770759213999877371",
"269725395366411278125554898339276893452",
"265055125224325034139423575803780999493",
"82926099711673485437290222122170241238",
"158836181761592961169473929089358867024",
"326499847421401661556641321036077845645",
"210917925821236856112974867344023961651",
"163066259411068153745354965615263316436",
"237836839483021823810964507988386072639",
"4537489317809881491933203372009781769",
"238288599533848857901833711223039481152",
"135424646632932988677169276316656261884",
"267814920509653315462340619100659216274"
],
"threshold": 0.9
},
"signature_version": "v1"
}
]