CVE-2022-48660: gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully
In the Linux kernel, the following vulnerability has been resolved:
gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully
When running gpio test on nxp-ls1028 platform with below command
gpiomon --num-events=3 --rising-edge gpiochip1 25
There will be a warning trace as below:
Call trace:
free_irq+0x204/0x360
lineevent_free+0x64/0x70
gpio_ioctl+0x598/0x6a0
__arm64_sys_ioctl+0xb4/0x100
invoke_syscall+0x5c/0x130
......
el0t_64_sync+0x1a0/0x1a4
The reason of this issue is that calling request_threaded_irq()
function failed, and then lineevent_free() is invoked to release
the resource. Since the lineevent_state::irq was already set, so
the subsequent invocation of free_irq() would trigger the above
warning call trace. To fix this issue, set the lineevent_state::irq
after the IRQ register successfully.
Security readout for executives and security teams
Plain-English summary
This is a local Linux kernel availability issue in the GPIO character-device event path. A failed IRQ registration can leave stale state, causing the cleanup path to call free_irq incorrectly and trigger a kernel warning trace. The CVE score is medium, with no confidentiality or integrity impact stated.
Executive priority
Treat as a moderate operational reliability issue. It is local and not known to be exploited, but systems that depend on GPIO hardware control should patch through normal kernel maintenance because the stated impact is availability.
Technical view
In gpiolib cdev line event setup, lineevent_state::irq was assigned before request_threaded_irq() succeeded. If IRQ registration failed, lineevent_free() treated the IRQ as valid and called free_irq(), producing the warning trace. The fix assigns lineevent_state::irq only after successful IRQ registration.
Likely exposure
Exposure is most likely on Linux systems running affected kernel versions with GPIO character-device event access available to local users or processes. The CVE data lists affected Linux kernel versions and fixes around 5.10.146, 5.15.71, 5.19.12, and 6.0; confirm distro backports.
Exploitation context
The source indicates local access, low complexity, low privileges, and no user interaction. It does not state active exploitation, and KEV is false. Evidence points to a local availability condition, not remote code execution or data compromise.
Researcher notes
The provided record is narrow and code-path specific. It documents the failure mode and fix but does not include a named CWE, exploit report, or broad product matrix. Validation should focus on kernel provenance, GPIO cdev exposure, and whether stable fixes were backported.
Mitigation direction
Update to a kernel containing one of the referenced stable fixes.
Check Linux distribution advisories for backported kernel packages.
Restrict GPIO character-device access to trusted local users and services.
Prioritize affected embedded or hardware-control systems with exposed GPIO access.
Validation and detection
Inventory kernel versions on systems with GPIO character-device usage.
Confirm whether vendor kernels include the referenced stable commits.
Review local permissions for GPIO device nodes and related service accounts.
Monitor kernel logs for matching GPIO IRQ cleanup warning traces.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-48660 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.