CVE-2023-54118
Description
In the Linux kernel, the following vulnerability has been resolved:
serial: sc16is7xx: setup GPIO controller later in probe
The GPIO controller component of the sc16is7xx driver is setup too early, which can result in a race condition where another device tries to utilise the GPIO lines before the sc16is7xx device has finished initialising.
This issue manifests itself as an Oops when the GPIO lines are configured:
Unable to handle kernel read from unreadable memory at virtual address ... pc : sc16is7xx_gpio_direction_output+0x68/0x108 [sc16is7xx] lr : sc16is7xx_gpio_direction_output+0x4c/0x108 [sc16is7xx] ... Call trace: sc16is7xx_gpio_direction_output+0x68/0x108 [sc16is7xx] gpiod_direction_output_raw_commit+0x64/0x318 gpiod_direction_output+0xb0/0x170 create_gpio_led+0xec/0x198 gpio_led_probe+0x16c/0x4f0 platform_drv_probe+0x5c/0xb0 really_probe+0xe8/0x448 driver_probe_device+0xe8/0x138 __device_attach_driver+0x94/0x118 bus_for_each_drv+0x8c/0xe0 __device_attach+0x100/0x1b8 device_initial_probe+0x28/0x38 bus_probe_device+0xa4/0xb0 deferred_probe_work_func+0x90/0xe0 process_one_work+0x1c4/0x480 worker_thread+0x54/0x430 kthread+0x138/0x150 ret_from_fork+0x10/0x1c
This patch moves the setup of the GPIO controller functions to later in the probe function, ensuring the sc16is7xx device has already finished initialising by the time other devices try to make use of the GPIO lines. The error handling has also been reordered to reflect the new initialisation order.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
In the Linux kernel sc16is7xx serial driver, GPIO controller setup occurs too early, causing a race condition leading to kernel Oops.
Vulnerability
In the Linux kernel's sc16is7xx serial driver, the GPIO controller component is initialized too early during device probe, before the device has fully finished initializing [1], [2]. This race condition allows another driver (e.g., gpio-led) to attempt to configure GPIO lines prematurely, resulting in a kernel Oops due to reading from unreadable memory.
Exploitation
The vulnerability is triggered during normal system boot when another device driver tries to use the GPIO lines before the sc16is7xx device is ready. An attacker would need local access to influence device initialization order or introduce a malicious driver that probes early; no special privileges are required [1], [2].
Impact
Successful exploitation causes a kernel Oops, leading to a denial of service condition. There is no indication of privilege escalation or data exfiltration [1], [2].
Mitigation
Patches have been committed to the Linux kernel stable branches that move GPIO controller setup later in the probe function, ensuring proper initialization before other devices can access the GPIO lines. Affected systems should update to the latest kernel version [1], [2].
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
517b96b5c19be49b326ce8a68f57c2164d082b71ff2067078c8f71b49ee4dVulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- git.kernel.org/stable/c/17b96b5c19bec791b433890549e44ca523dc82aanvd
- git.kernel.org/stable/c/49b326ce8a686428d8cbb82ed74fc88ed3f95a51nvd
- git.kernel.org/stable/c/b71ff206707855ce73c04794c76f7b678b2d4f72nvd
- git.kernel.org/stable/c/c8f71b49ee4d28930c4a6798d1969fa91dc4ef3envd
- git.kernel.org/stable/c/f57c2164d082a36d177ab7fbf54c18970df89c22nvd
News mentions
0No linked articles in our index yet.