Lucene search

K
cvelistLinuxCVELIST:CVE-2024-44937
HistoryAug 26, 2024 - 10:11 a.m.

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

2024-08-2610:11:30
Linux
www.cve.org
4
platform/x86
linux kernel
vulnerability
acpi
intel-vbtn
recursion
mutex

EPSS

0

Percentile

9.5%

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.

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/platform/x86/intel/vbtn.c"
    ],
    "versions": [
      {
        "version": "e2ffcda16290",
        "lessThan": "5c9618a3b6ea",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "e2ffcda16290",
        "lessThan": "e075c3b13a0a",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/platform/x86/intel/vbtn.c"
    ],
    "versions": [
      {
        "version": "6.8",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "6.8",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10.5",
        "lessThanOrEqual": "6.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.11",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

EPSS

0

Percentile

9.5%