CVE-2024-44937

platform/x86: intel-vbtn: Protect ACPI notify handler against recursion

published August 26, 2024

CVSS
—
EPSS
0%
Percentile
7.4
In the wild
Unconfirmed
What it is

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

platform/x86: intel-vbtn: Protect ACPI notify handler against recursion

Since commit e2ffcda16290 ("ACPI: OSL: Allow Notify () handlers to run on

all CPUs") ACPI notify handlers like the intel-vbtn notify_handler() may

run on multiple CPU cores racing with themselves.

This race gets hit on Dell Venue 7140 tablets when undocking from

the keyboard, causing the handler to try and register priv->switches_dev

twice, as can be seen from the dev_info() message getting logged twice:

[ 83.861800] intel-vbtn INT33D6:00: Registering Intel Virtual Switches input-dev after receiving a switch event

[ 83.861858] input: Intel Virtual Switches as /devices/pci0000:00/0000:00:1f.0/PNP0C09:00/INT33D6:00/input/input17

[ 83.861865] intel-vbtn INT33D6:00: Registering Intel Virtual Switches input-dev after receiving a switch event

After which things go seriously wrong:

[ 83.861872] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/INT33D6:00/input/input17'

...

[ 83.861967] kobject: kobject_add_internal failed for input17 with -EEXIST, don't try to register things with the same name in the same directory.

[ 83.877338] BUG: kernel NULL pointer dereference, address: 0000000000000018

...

Protect intel-vbtn notify_handler() from racing with itself with a mutex

to fix this.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00182 · 7.4th percentile
Published
2024-08-26T10:11Z
EPSS history
Timeline
  • 26 AUG 10:11Z
    platform/x86: intel-vbtn: Protect ACPI notify handler against recursion
    cvelistv5