CVE-2024-56542

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-56542
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-56542.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2024-56542
Downstream
Published
2024-12-27T14:11:24Z
Modified
2025-10-22T07:13:16.595967Z
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
drm/amd/display: fix a memleak issue when driver is removed
Details

In the Linux kernel, the following vulnerability has been resolved:

drm/amd/display: fix a memleak issue when driver is removed

Running "modprobe amdgpu" the second time (followed by a modprobe -r amdgpu) causes a call trace like:

[ 845.212163] Memory manager not clean during takedown. [ 845.212170] WARNING: CPU: 4 PID: 2481 at drivers/gpu/drm/drmmm.c:999 drmmmtakedown+0x2b/0x40 [ 845.212177] Modules linked in: amdgpu(OE-) amddrmttmhelper(OE) amddrmbuddy(OE) amdxcp(OE) amdsched(OE) drmexec drmsuballochelper drmdisplayhelper i2calgobit amdttm(OE) amdkcl(OE) cec rccore sunrpc qrtr intelraplmsr intelraplcommon sndhdacodechdmi edacmceamd sndhdaintel sndinteldspcfg sndintelsdwacpi sndusbaudio sndhdacodec sndusbmidilib kvmamd sndhdacore sndump mc sndhwdep kvm sndpcm sndseqmidi sndseqmidievent irqbypass crct10difpclmul sndrawmidi polyvalclmulni polyvalgeneric ghashclmulniintel sha256ssse3 sha1ssse3 sndseq aesniintel cryptosimd sndseqdevice cryptd sndtimer mfdaaeon asusnbwmi eeepcwmi joydev asuswmi snd ledtrigaudio sparsekeymap ccp wmibmof inputleds k10temp i2cpiix4 platformprofile rapl soundcore gpioamdpt machid binfmtmisc msr parportpc ppdev lp parport efipstore nfnetlink dmisysfs iptables xtables autofs4 hidlogitechhidpp hidlogitechdj hidgeneric usbhid hid ahci xhcipci igc crc32pclmul libahci xhcipcirenesas video [ 845.212284] wmi [last unloaded: amddrmttmhelper(OE)] [ 845.212290] CPU: 4 PID: 2481 Comm: modprobe Tainted: G W OE 6.8.0-31-generic #31-Ubuntu [ 845.212296] RIP: 0010:drmmmtakedown+0x2b/0x40 [ 845.212300] Code: 1f 44 00 00 48 8b 47 38 48 83 c7 38 48 39 f8 75 09 31 c0 31 ff e9 90 2e 86 00 55 48 c7 c7 d0 f6 8e 8a 48 89 e5 e8 f5 db 45 ff <0f> 0b 5d 31 c0 31 ff e9 74 2e 86 00 66 0f 1f 84 00 00 00 00 00 90 [ 845.212302] RSP: 0018:ffffb11302127ae0 EFLAGS: 00010246 [ 845.212305] RAX: 0000000000000000 RBX: ffff92aa5020fc08 RCX: 0000000000000000 [ 845.212307] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [ 845.212309] RBP: ffffb11302127ae0 R08: 0000000000000000 R09: 0000000000000000 [ 845.212310] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000004 [ 845.212312] R13: ffff92aa50200000 R14: ffff92aa5020fb10 R15: ffff92aa5020faa0 [ 845.212313] FS: 0000707dd7c7c080(0000) GS:ffff92b93de00000(0000) knlGS:0000000000000000 [ 845.212316] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 845.212318] CR2: 00007d48b0aee200 CR3: 0000000115a58000 CR4: 0000000000f50ef0 [ 845.212320] PKRU: 55555554 [ 845.212321] Call Trace: [ 845.212323] <TASK> [ 845.212328] ? showregs+0x6d/0x80 [ 845.212333] ? _warn+0x89/0x160 [ 845.212339] ? drmmmtakedown+0x2b/0x40 [ 845.212344] ? reportbug+0x17e/0x1b0 [ 845.212350] ? handlebug+0x51/0xa0 [ 845.212355] ? excinvalidop+0x18/0x80 [ 845.212359] ? asmexcinvalidop+0x1b/0x20 [ 845.212366] ? drmmmtakedown+0x2b/0x40 [ 845.212371] amdgpugttmgrfini+0xa9/0x130 [amdgpu] [ 845.212645] amdgputtmfini+0x264/0x340 [amdgpu] [ 845.212770] amdgpubofini+0x2e/0xc0 [amdgpu] [ 845.212894] gmcv120swfini+0x2a/0x40 [amdgpu] [ 845.213036] amdgpudevicefinisw+0x11a/0x590 [amdgpu] [ 845.213159] amdgpudriverreleasekms+0x16/0x40 [amdgpu] [ 845.213302] devmdrmdevinitrelease+0x5e/0x90 [ 845.213305] devmactionrelease+0x12/0x30 [ 845.213308] releasenodes+0x42/0xd0 [ 845.213311] devresreleaseall+0x97/0xe0 [ 845.213314] deviceunbindcleanup+0x12/0x80 [ 845.213317] devicereleasedriverinternal+0x230/0x270 [ 845.213319] ? srsoaliasreturn_thunk+0x5/0xfbef5

This is caused by lost memory during early init phase. First time driver is removed, memory is freed but when second time the driver is inserted, VBIOS dmub is not active, since the PSP policy is to retain the driver loaded version on subsequent warm boots. Hence, communication with VBIOS DMUB fails.

Fix this by aborting further comm ---truncated---

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
43ebd0faec24652cb529ceefd594c61897059f90
Fixed
e51cbe40b77a32e8698ad8b9582e5b4fce6da364
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f59549c7e705be0087d08bc116ccc767b86d8362
Fixed
5860c637513036a6ffc130950ea98676b591b47c
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f59549c7e705be0087d08bc116ccc767b86d8362
Fixed
d4f36e5fd800de7db74c1c4e62baf24a091a5ff6

Affected versions

v6.*

v6.10
v6.10-rc7
v6.11
v6.11-rc1
v6.11-rc2
v6.11-rc3
v6.11-rc4
v6.11-rc5
v6.11-rc6
v6.11-rc7
v6.11.10
v6.11.2
v6.11.3
v6.11.4
v6.11.5
v6.11.6
v6.11.7
v6.11.8
v6.11.9
v6.12
v6.12-rc1
v6.12-rc2
v6.12-rc3
v6.12-rc4
v6.12-rc5
v6.12-rc6
v6.12-rc7
v6.12.1

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.11.11
Type
ECOSYSTEM
Events
Introduced
6.12.0
Fixed
6.12.2