CVE-2026-98397: platform/x86: x86-android-tablets: hold device reference for secondary fwnode teardown

Published Oct 14, 2026
·
Updated

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

platform/x86: x86-android-tablets: hold device reference for secondary fwnode teardown

In gpiosecondaryfwnodeinit(), acpibusfinddevicebyname() returns a device reference, but the local dev variable is declared with free(putdevice), dropping the reference at the end of each iteration. Meanwhile, devmaddactionorreset() saves the dev pointer for gpiosecondaryunset() without incrementing its reference count, which could lead to a use-after-free during driver teardown if the device is released in the interim.

Acquire an explicit device reference with getdevice() when registering the devres action, and drop it with putdevice() inside gpiosecondaryunset().

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    In gpio_secondary_fwnode_init(), acquire an explicit device reference with get_device() when registering the secondary fwnode, and release it with put_device() during gpio_secondary_unset() or teardown to prevent use-after-free.

Event History

Oct 14, 2026
CVE Published
via MITRE·01:25 PM
Data Sourced
via MITRE·01:25 PM
Description

Frequently Asked Questions

1

When can this use-after-free occur?

The issue can occur during driver teardown, if a device found by acpi_bus_find_device_by_name() is released after its pointer has been saved for the gpio_secondary_unset() devres action.

2

What component and configuration are implicated?

The affected code is in the Linux kernel's platform/x86 x86-android-tablets support, specifically secondary firmware-node handling in gpio_secondary_fwnode_init(). The provided information does not establish whether this support is enabled by default.

3

What change resolves the lifetime problem?

The fix takes an explicit device reference with get_device() when registering the devres action and releases that reference with put_device() in gpio_secondary_unset(). This keeps the saved device pointer valid until teardown cleanup runs.

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