In the Linux kernel, the following vulnerability has been resolved:
drm/msm/adreno: Assign msm_gpu->pdev earlier to avoid nullptrs
There are some cases, such as the one uncovered by Commit 46d4efcccc68 ("drm/msm/a6xx: Avoid a nullptr dereference when speedbin setting fails") where
msmgpucleanup() : platformsetdrvdata(gpu->pdev, NULL);
is called on gpu->pdev == NULL, as the GPU device has not been fully initialized yet.
Turns out that there's more than just the aforementioned path that causes this to happen (e.g. the case when there's speedbin data in the catalog, but opp-supported-hw is missing in DT).
Assigning msm_gpu->pdev earlier seems like the least painful solution to this, therefore do so.
Patchwork: https://patchwork.freedesktop.org/patch/602742/
[
{
"id": "CVE-2024-49901-07dbe172",
"digest": {
"line_hashes": [
"124191515913654994963373050823985609272",
"272946475346028146036351190342271891735",
"189517143232200956832545734359127696030",
"145053040861940848661365743693836716973"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16007768551d5bfe53426645401435ca8d2ef54f",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-33756782",
"digest": {
"line_hashes": [
"3764544568981472501305237778427954240",
"2972481545011581198747758246611062159",
"185990558096544194764856237439485051089",
"126002237677449919944748037128126299397"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e8ac2060597a5768e4699bb61d604b4c09927b85",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-467e5917",
"digest": {
"line_hashes": [
"3764544568981472501305237778427954240",
"2972481545011581198747758246611062159",
"185990558096544194764856237439485051089",
"126002237677449919944748037128126299397"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9288a9676c529ad9c856096db68fad812499bc4a",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-48fd1dca",
"digest": {
"length": 3641.0,
"function_hash": "236060976121168197951348388409082868788"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e8ac2060597a5768e4699bb61d604b4c09927b85",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c",
"function": "msm_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-4b1a570c",
"digest": {
"line_hashes": [
"3764544568981472501305237778427954240",
"2972481545011581198747758246611062159",
"185990558096544194764856237439485051089",
"126002237677449919944748037128126299397"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16007768551d5bfe53426645401435ca8d2ef54f",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-500860ff",
"digest": {
"line_hashes": [
"3764544568981472501305237778427954240",
"2972481545011581198747758246611062159",
"185990558096544194764856237439485051089",
"126002237677449919944748037128126299397"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9773737375b20070ea935203fd66cb9fa17c5acb",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-75795872",
"digest": {
"length": 1127.0,
"function_hash": "337921996794080389734005026736114087899"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9773737375b20070ea935203fd66cb9fa17c5acb",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c",
"function": "adreno_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-76052554",
"digest": {
"line_hashes": [
"124191515913654994963373050823985609272",
"272946475346028146036351190342271891735",
"189517143232200956832545734359127696030",
"145053040861940848661365743693836716973"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9288a9676c529ad9c856096db68fad812499bc4a",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-7d3a94d7",
"digest": {
"length": 1127.0,
"function_hash": "337921996794080389734005026736114087899"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16007768551d5bfe53426645401435ca8d2ef54f",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c",
"function": "adreno_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-8fc5e326",
"digest": {
"length": 1127.0,
"function_hash": "337921996794080389734005026736114087899"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e8ac2060597a5768e4699bb61d604b4c09927b85",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c",
"function": "adreno_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-93205b40",
"digest": {
"length": 1127.0,
"function_hash": "337921996794080389734005026736114087899"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9288a9676c529ad9c856096db68fad812499bc4a",
"target": {
"file": "drivers/gpu/drm/msm/adreno/adreno_gpu.c",
"function": "adreno_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-ad0a6af0",
"digest": {
"line_hashes": [
"124191515913654994963373050823985609272",
"272946475346028146036351190342271891735",
"189517143232200956832545734359127696030",
"145053040861940848661365743693836716973"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9773737375b20070ea935203fd66cb9fa17c5acb",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-b92522f6",
"digest": {
"length": 3641.0,
"function_hash": "236060976121168197951348388409082868788"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9773737375b20070ea935203fd66cb9fa17c5acb",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c",
"function": "msm_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-bb6e3a2c",
"digest": {
"length": 3641.0,
"function_hash": "236060976121168197951348388409082868788"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16007768551d5bfe53426645401435ca8d2ef54f",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c",
"function": "msm_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-c48d1b86",
"digest": {
"line_hashes": [
"124191515913654994963373050823985609272",
"272946475346028146036351190342271891735",
"189517143232200956832545734359127696030",
"145053040861940848661365743693836716973"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e8ac2060597a5768e4699bb61d604b4c09927b85",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-49901-c4d5a644",
"digest": {
"length": 3641.0,
"function_hash": "236060976121168197951348388409082868788"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9288a9676c529ad9c856096db68fad812499bc4a",
"target": {
"file": "drivers/gpu/drm/msm/msm_gpu.c",
"function": "msm_gpu_init"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
}
]