{"id":"CVE-2026-99189","title":"gpio: mxc: fix race between chained IRQ handler install and probe completion","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\ngpio: mxc: fix race between chained IRQ handler install and probe completion\n\nmxc_update_irq_chained_handler() is called before the IRQ domain, the\ngeneric IRQ chip, an…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 5f6d1998adeb5374ef248b5ba2e2a0c30ab0f60b < 261802c14e1a3281987ea8f106701e5ed9652f68","Linux >= 5f6d1998adeb5374ef248b5ba2e2a0c30ab0f60b < 6c1e035d881579a6e4ed1ce5feabb13d23e80a82","Linux >= 5f6d1998adeb5374ef248b5ba2e2a0c30ab0f60b < 38d44f78f041ffe60c8e2443b99434a199e7541d","Linux 6.6"],"published":"2026-10-28","updated":"2026-10-28","sourceUpdated":"2026-10-28T10:35:46.366Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-99189","references":[{"url":"https://git.kernel.org/stable/c/261802c14e1a3281987ea8f106701e5ed9652f68"},{"url":"https://git.kernel.org/stable/c/6c1e035d881579a6e4ed1ce5feabb13d23e80a82"},{"url":"https://git.kernel.org/stable/c/38d44f78f041ffe60c8e2443b99434a199e7541d"}],"tags":["cve.org"],"ingestedAt":"2026-10-28T11:09:40.375Z","slug":"CVE-2026-99189","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\ngpio: mxc: fix race between chained IRQ handler install and probe completion\n\nmxc_update_irq_chained_handler() is called before the IRQ domain, the\ngeneric IRQ chip, and the port list entry are set up. If an interrupt\narrives in that window:\n\n - mx3_gpio_irq_handler() calls generic_handle_domain_irq() with\n   port->domain still NULL.\n - mx2_gpio_irq_handler() walks mxc_gpio_ports, but the port has not\n   been added to the list yet.\n\nAdditionally, if any of the subsequent probe steps\n(gpio_generic_chip_init(), devm_gpiochip_add_data(),\nirq_domain_create_legacy(), or mxc_gpio_init_gc()) fail, the error\npaths never unregister the chained handler, leaving a dangling handler\nthat points at freed memory.\n\nMove the handler installation after all its dependencies are ready and\nafter list_add_tail(), so the handler is never live while the data\nstructures it touches are incomplete, and is never installed if probe\nfails.\n\n## Affected\n\n- `Linux >= 5f6d1998adeb5374ef248b5ba2e2a0c30ab0f60b < 261802c14e1a3281987ea8f106701e5ed9652f68`\n- `Linux >= 5f6d1998adeb5374ef248b5ba2e2a0c30ab0f60b < 6c1e035d881579a6e4ed1ce5feabb13d23e80a82`\n- `Linux >= 5f6d1998adeb5374ef248b5ba2e2a0c30ab0f60b < 38d44f78f041ffe60c8e2443b99434a199e7541d`\n- `Linux 6.6`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}