{"id":"CVE-2026-90291","summary":"module/dups: Fix use-after-free in kmod_dup_req lifetime handling","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nmodule/dups: Fix use-after-free in kmod_dup_req lifetime handling\n\nThe kmod dups code uses RCU to ensure that a kmod_dup_req instance is freed\nonly after it is no longer referenced. When releasing an instance, the\nkmod_dup_request_delete() function removes the kmod_dup_req from the\ndup_kmod_reqs list, waits via synchronize_rcu() and finally frees it.\nHowever, this doesn't work correctly because parallel users referencing the\ninstance in kmod_dup_request_exists_wait() don't enter an RCU read-side\ncritical section. This can result in a use-after-free.\n\nThe kmod_dup_request_exists_wait() function may need to hold a valid\nreference to a kmod_dup_req instance across a blocking wait until the\ncorresponding modprobe command completes. This makes it unsuitable for RCU.\n\nFix the issue by changing the lifecycle management of kmod_dup_req to use\nreference counting.","modified":"2026-09-19T03:47:25.802424398Z","published":"2026-09-17T16:08:18.700Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90291.json","cna_assigner":"Linux"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/2c85e0fb528e039aa8ea1e9c2a1f64347f990541"},{"type":"WEB","url":"https://git.kernel.org/stable/c/5eecb11b543f9f417bcf0dea239ff99c6af65dbd"},{"type":"WEB","url":"https://git.kernel.org/stable/c/b2709aad7599f6fd957939b60f4a8323c8f08072"},{"type":"WEB","url":"https://git.kernel.org/stable/c/cd2396fc9684d2cfd3f3c3f09c79d6d9d725b0ca"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90291.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-90291"},{"type":"PACKAGE","url":"https://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":"8660484ed1cf3261e89e0bad94c6395597e87599"},{"fixed":"2c85e0fb528e039aa8ea1e9c2a1f64347f990541"},{"fixed":"b2709aad7599f6fd957939b60f4a8323c8f08072"},{"fixed":"cd2396fc9684d2cfd3f3c3f09c79d6d9d725b0ca"},{"fixed":"5eecb11b543f9f417bcf0dea239ff99c6af65dbd"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90291.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.4.0"},{"fixed":"6.12.110"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.52"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.6"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90291.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}