CVE-2024-45012: nouveau/firmware: use dma non-coherent allocator

Published Sep 11, 2024
·
Updated

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

nouveau/firmware: use dma non-coherent allocator

Currently, enabling SGDEBUG in the kernel will cause nouveau to hit a BUG() on startup, when the iommu is enabled:

kernel BUG at include/linux/scatterlist.h:187! invalid opcode: 0000 [#1] PREEMPT SMP NOPTI CPU: 7 PID: 930 Comm: (udev-worker) Not tainted 6.9.0-rc3Lyude-Test+ #30 Hardware name: MSI MS-7A39/A320M GAMING PRO (MS-7A39), BIOS 1.I0 01/22/2019 RIP: 0010:sginitone+0x85/0xa0 Code: 69 88 32 01 83 e1 03 f6 c3 03 75 20 a8 01 75 1e 48 09 cb 41 89 54 24 08 49 89 1c 24 41 89 6c 24 0c 5b 5d 41 5c e9 7b b9 88 00 <0f> 0b 0f 0b 0f 0b 48 8b 05 5e 46 9a 01 eb b2 66 66 2e 0f 1f 84 00 RSP: 0018:ffffa776017bf6a0 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffa77600d87000 RCX: 000000000000002b RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffffa77680d87000 RBP: 000000000000e000 R08: 0000000000000000 R09: 0000000000000000 R10: ffff98f4c46aa508 R11: 0000000000000000 R12: ffff98f4c46aa508 R13: ffff98f4c46aa008 R14: ffffa77600d4a000 R15: ffffa77600d4a018 FS: 00007feeb5aae980(0000) GS:ffff98f5c4dc0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f22cb9a4520 CR3: 00000001043ba000 CR4: 00000000003506f0 Call Trace: <TASK> ? die+0x36/0x90 ? dotrap+0xdd/0x100 ? sginitone+0x85/0xa0 ? doerrortrap+0x65/0x80 ? sginitone+0x85/0xa0 ? excinvalidop+0x50/0x70 ? sginitone+0x85/0xa0 ? asmexcinvalidop+0x1a/0x20 ? sginitone+0x85/0xa0 nvkmfirmwarector+0x14a/0x250 [nouveau] nvkmfalconfwctor+0x42/0x70 [nouveau] ga102gspbooterctor+0xb4/0x1a0 [nouveau] r535gsponeinit+0xb3/0x15f0 [nouveau] ? srsoreturnthunk+0x5/0x5f ? srsoreturnthunk+0x5/0x5f ? nvkmudevicenew+0x95/0x140 [nouveau] ? srsoreturnthunk+0x5/0x5f ? srsoreturnthunk+0x5/0x5f ? ktimeget+0x47/0xb0

Fix this by using the non-coherent allocator instead, I think there might be a better answer to this, but it involve ripping up some of APIs using sg lists.

Affected Software

9 affected componentsFixes available
Linux Linux kernel>=6.2<6.6.48
Linux Linux kernel>=6.7<6.10.7
Linux Linux kernel=6.11-rc1
Linux Linux kernel=6.11-rc2
Linux Linux kernel=6.11-rc3
Linux Linux kernel=6.11-rc4
debian/linux
5.10.223-15.10.234-16.1.129-16.1.135-16.12.25-16.12.27-1
Microsoft azl3 kernel 6.6.47.1-1
Microsoft azl3 kernel 6.6.51.1-1

Event History

Sep 11, 2024
CVE Published
via MITRE·03:13 PM
Data Sourced
via MITRE·03:13 PM
Description
Oct 15, 2024
Data Sourced
via Microsoft·07:00 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·07:00 AM
Affected Software
Updated
via Microsoft·07:00 AM
Affected Software
Updated
via Microsoft·07:00 AM
DescriptionSeverity
Jan 9, 2025
Data Sourced
via Ubuntu·06:29 PM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-45012?

CVE-2024-45012 has a high severity due to potential system crashes caused by the BUG() hit on startup with SG_DEBUG enabled.

2

How do I fix CVE-2024-45012?

To fix CVE-2024-45012, update your Linux kernel to a version that includes the patches such as 5.10.223-1, 5.10.226-1, 6.1.123-1, 6.12.11-1, or later.

3

Which versions of the Linux kernel are affected by CVE-2024-45012?

CVE-2024-45012 affects Linux kernel versions 6.2 to 6.6.48 and 6.7 to 6.10.7, as well as all 6.11 release candidates.

4

What is the impact of CVE-2024-45012 on Linux kernel users?

Users of affected Linux kernel versions may experience system crashes during startup when using SG_DEBUG with iommu enabled.

5

Is there a specific distribution affected by CVE-2024-45012?

Yes, Debian Linux is one of the distributions affected, particularly those using the specified vulnerable kernel versions.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203