title: HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit
description: In the Linux kernel, the following vulnerability has been resolved:
HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit
The EHL (Elkhart Lake) based platforms provide a OOB (Out of band)
service, which allows to wakup device when the system is in S5 (Soft-Off
state). This OOB service can be enabled/disabled from BIOS settings. When
enabled, the ISH device gets PME wake capability. To enable PME wakeup,
driver also needs to enable ACPI GPE bit.
On resume, BIOS will clear the wakeup bit. So driver need to re-enable it
in resume function to keep the next wakeup capability. But this BIOS
clearing of wakeup bit doesn't decrement internal OS GPE reference count,
so this reenabling on every resume will cause reference count to overflow.
So first disable and reenable ACPI GPE bit using acpi_disable_gpe().
affected:
{
product: Linux
vendor: Linux
defaultStatus: unaffected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 2e23a70edabe, lessThan: 8781fe259dd5, status: affected, versionType: git
version: 2e23a70edabe, lessThan: cdcc04e844a2, status: affected, versionType: git
version: 2e23a70edabe, lessThan: 60fb3f054c99, status: affected, versionType: git
version: 2e23a70edabe, lessThan: 8f02139ad9a7, status: affected, versionType: git
}
{
product: Linux
vendor: Linux
defaultStatus: affected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 5.12, status: affected
version: 0, lessThan: 5.12, status: unaffected, versionType: custom
version: 5.15.135, lessThanOrEqual: 5.15.*, status: unaffected, versionType: custom
version: 6.1.57, lessThanOrEqual: 6.1.*, status: unaffected, versionType: custom
version: 6.5.7, lessThanOrEqual: 6.5.*, status: unaffected, versionType: custom
version: 6.6, lessThanOrEqual: *, status: unaffected, versionType: original_commit_for_fix
}
