CVE-2026-98938

Source
https://cve.org/CVERecord?id=CVE-2026-98938
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98938.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-98938
Downstream
Published
2026-10-23T12:11:59Z
Modified
2026-10-28T02:30:45Z
Summary
rust: irq: pass RegistrationInner as cookie to request_irq
Details

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

rust: irq: pass RegistrationInner as cookie to request_irq

With commit ba268514ea14 ("rust: devres: fix race condition due to nesting"), Devres::new() returns Result by value instead of initializing in-place via PinInit. Because request_irq() is called inside Devres::new(), registration.inner is still uninitialized when the IRQ is enabled, so accessing registration.inner.device() in the IRQ callback can read uninitialized memory.

Fix this by storing the Device and handler pointer in RegistrationInner and passing RegistrationInner as the IRQ cookie after its fields are initialized.

This is not needed in mainline because commit 98c63ce4d760 ("rust: irq: make Registration compatible with lifetime-bound drivers") removed Devres from irq::Registration and moved request_irq() after all fields are initialized.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98938.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
29e16fcd67ee5b1d0417a657294cf96fdf2f8df9
Fixed
9a7931e847f338a687e96cde9f37e0cff83ddd84

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98938.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.18.0
Fixed
7.2.10

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98938.json"