In the Linux kernel, the following vulnerability has been resolved:
locking/csdlock: Change csdlockdebug from earlyparam to _setup
The csdlockdebug kernel-boot parameter is parsed by the earlyparam() function csdlockdebug(). If set, csdlockdebug() invokes staticbranchenable() to enable csdlockwait feature, which triggers a panic on arm64 for kernels built with CONFIGSPARSEMEM=y and CONFIGSPARSEMEM_VMEMMAP=n.
With CONFIGSPARSEMEMVMEMMAP=n, _nrtosection is called in statickeyenable() and returns NULL, resulting in a NULL dereference because memsection is initialized only later in sparse_init().
This is also a problem for powerpc because earlyparam() functions are invoked earlier than jumplabelinit(), also resulting in statickeyenable() failures. These failures cause the warning "static key 'xxx' used before call to jumplabel_init()".
Thus, earlyparam is too early for csdlockwait to run staticbranchenable(), so changes it to _setup to fix these.
{ "vanir_signatures": [ { "id": "CVE-2022-50091-043f0d31", "signature_type": "Function", "target": { "file": "kernel/smp.c", "function": "csdlock_debug" }, "deprecated": false, "digest": { "length": 264.0, "function_hash": "14611611318189753202187100037711537304" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d2cbdbe22b5f190055d2d0ae92e7454479343a30" }, { "id": "CVE-2022-50091-3689c1d0", "signature_type": "Function", "target": { "file": "kernel/smp.c", "function": "csdlock_debug" }, "deprecated": false, "digest": { "length": 264.0, "function_hash": "14611611318189753202187100037711537304" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b480d1e9a8c11ecc1c99dc01814b28e3103bd0a0" }, { "id": "CVE-2022-50091-39bbd8bc", "signature_type": "Function", "target": { "file": "kernel/smp.c", "function": "csdlock_debug" }, "deprecated": false, "digest": { "length": 264.0, "function_hash": "14611611318189753202187100037711537304" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05de9e2e33b1625c71aee69e353fe906dd2be88a" }, { "id": "CVE-2022-50091-a16519dc", "signature_type": "Line", "target": { "file": "kernel/smp.c" }, "deprecated": false, "digest": { "line_hashes": [ "162846425184859959557266090621631661469", "134664510700642263854484336517212637926", "217938608703899968918591744921373065158", "145582941776332083064702507983221132414", "87384969846070631849973831768865275839", "125617922551097491442194582690640357069" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b480d1e9a8c11ecc1c99dc01814b28e3103bd0a0" }, { "id": "CVE-2022-50091-c493b503", "signature_type": "Line", "target": { "file": "kernel/smp.c" }, "deprecated": false, "digest": { "line_hashes": [ "162846425184859959557266090621631661469", "134664510700642263854484336517212637926", "217938608703899968918591744921373065158", "145582941776332083064702507983221132414", "87384969846070631849973831768865275839", "125617922551097491442194582690640357069" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05de9e2e33b1625c71aee69e353fe906dd2be88a" }, { "id": "CVE-2022-50091-e3d560d2", "signature_type": "Line", "target": { "file": "kernel/smp.c" }, "deprecated": false, "digest": { "line_hashes": [ "162846425184859959557266090621631661469", "134664510700642263854484336517212637926", "217938608703899968918591744921373065158", "145582941776332083064702507983221132414", "87384969846070631849973831768865275839", "125617922551097491442194582690640357069" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9c9b26b0df270d4f9246e483a44686fca951a29c" }, { "id": "CVE-2022-50091-e5ad1d34", "signature_type": "Line", "target": { "file": "kernel/smp.c" }, "deprecated": false, "digest": { "line_hashes": [ "162846425184859959557266090621631661469", "134664510700642263854484336517212637926", "217938608703899968918591744921373065158", "145582941776332083064702507983221132414", "87384969846070631849973831768865275839", "125617922551097491442194582690640357069" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d2cbdbe22b5f190055d2d0ae92e7454479343a30" }, { "id": "CVE-2022-50091-eee2f440", "signature_type": "Function", "target": { "file": "kernel/smp.c", "function": "csdlock_debug" }, "deprecated": false, "digest": { "length": 264.0, "function_hash": "14611611318189753202187100037711537304" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9c9b26b0df270d4f9246e483a44686fca951a29c" } ] }