{"id":"CVE-2026-98670","title":"iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\niio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind\n\nThe ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via\nschedule_delayed_work(); that…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < a29d385ad7b340c952a3935af2b33488db1eb3a6","Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < a5fe2d1b55faba6d00fd87ad491b6cb603046304","Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < 49ea8a359e362bfbb32a647c8eb7962fbb37234e","Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < 0f3f427076240e75ff265e61645627a71ca4918c","Linux e96eb8853f334f96312968e4f01c5a452db54c00","Linux >= 5.10.200 < 5.11","Linux 5.12"],"published":"2026-10-18","updated":"2026-10-19","sourceUpdated":"2026-10-19T09:23:38.746Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98670","references":[{"url":"https://git.kernel.org/stable/c/a29d385ad7b340c952a3935af2b33488db1eb3a6"},{"url":"https://git.kernel.org/stable/c/a5fe2d1b55faba6d00fd87ad491b6cb603046304"},{"url":"https://git.kernel.org/stable/c/49ea8a359e362bfbb32a647c8eb7962fbb37234e"},{"url":"https://git.kernel.org/stable/c/0f3f427076240e75ff265e61645627a71ca4918c"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.532Z","slug":"CVE-2026-98670","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\niio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind\n\nThe ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via\nschedule_delayed_work(); that work is cleared by a devm callback.\nRegister the devm callback before devm_request_irq() so the devres LIFO\nteardown frees the IRQ first, ensuring the handler can no longer queue\nwork by the time the workqueue is cleared. Otherwise the handler could\nre-arm the work and run it after the xadc structure has been freed.\n\nThis issue was found by an in-house static analysis tool.\n\n## Affected\n\n- `Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < a29d385ad7b340c952a3935af2b33488db1eb3a6`\n- `Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < a5fe2d1b55faba6d00fd87ad491b6cb603046304`\n- `Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < 49ea8a359e362bfbb32a647c8eb7962fbb37234e`\n- `Linux >= 2a9685d1a3b7644ca08d8355fc238b43faef7c3e < 0f3f427076240e75ff265e61645627a71ca4918c`\n- `Linux e96eb8853f334f96312968e4f01c5a452db54c00`\n- `Linux >= 5.10.200 < 5.11`\n- `Linux 5.12`\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":[]}