{"id":"CVE-2026-80678","summary":"i2c: imx: Fix slave registration race and error handling","details":"In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: imx: Fix slave registration race and error handling\n\nIn i2c_imx_reg_slave(), the slave pointer was assigned before\npm_runtime_resume_and_get().  If pm_runtime_resume_and_get() failed,\nthe error path returned without clearing i2c_imx-\u003eslave, leaving it\nnon-NULL and causing all subsequent registration attempts to fail\nwith -EBUSY.\n\nAdditionally, because this driver uses a shared IRQ, the interrupt\nhandler i2c_imx_isr() can execute concurrently and, after acquiring\nslave_lock, dereference i2c_imx-\u003eslave.  The previous fix attempt\nadded a lockless i2c_imx-\u003eslave = NULL on the error path, but that\ncould race with the ISR under the lock and still cause a NULL pointer\ndereference.\n\nFix both issues by deferring the assignment of i2c_imx-\u003eslave and\ni2c_imx-\u003elast_slave_event to after a successful resume, and by\nperforming the assignment inside the slave_lock critical section.\nThis guarantees that the slave pointer is never left stale on the\nerror path and is always valid when observed by the interrupt handler.","modified":"2026-08-29T03:47:17.086658838Z","published":"2026-08-28T06:52:47.077Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80678.json"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/12a4f0950a158d98552cbaeacc35edccd8d975fa"},{"type":"WEB","url":"https://git.kernel.org/stable/c/614ca6594e301ff682999797c2216e9685558a2b"},{"type":"WEB","url":"https://git.kernel.org/stable/c/754bc62f72fd64b202462367134ac8ce95b005de"},{"type":"WEB","url":"https://git.kernel.org/stable/c/b9f6f4883b9ac86654e75899d0dbf8a7a96ad5d8"},{"type":"WEB","url":"https://git.kernel.org/stable/c/cfdf6e13518589f911b7eace6ccb788e4ed87397"},{"type":"WEB","url":"https://git.kernel.org/stable/c/d64ec362c369bbc33833f7936d5f3a706b0d5c45"},{"type":"WEB","url":"https://git.kernel.org/stable/c/d6748f6802f3eebafaa16a5e5dcfbfb9b3bc173f"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80678.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-80678"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"f7414cd6923fd7f78e57086fc964ba2dc25db5c1"},{"fixed":"754bc62f72fd64b202462367134ac8ce95b005de"},{"fixed":"cfdf6e13518589f911b7eace6ccb788e4ed87397"},{"fixed":"b9f6f4883b9ac86654e75899d0dbf8a7a96ad5d8"},{"fixed":"d6748f6802f3eebafaa16a5e5dcfbfb9b3bc173f"},{"fixed":"12a4f0950a158d98552cbaeacc35edccd8d975fa"},{"fixed":"614ca6594e301ff682999797c2216e9685558a2b"},{"fixed":"d64ec362c369bbc33833f7936d5f3a706b0d5c45"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80678.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.11.0"},{"fixed":"5.15.217"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"6.1.183"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.2.0"},{"fixed":"6.6.151"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.103"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.44"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.1.8"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80678.json"}}],"schema_version":"1.9.0"}