{"id":"CVE-2026-93815","title":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: au1000: move free_irq out of the close-time spinlocked section\n\nau1000_close() calls free_irq() while aup->lock is still held with\nspin_lock_irqsave()","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: au1000: move free_irq out of the close-time spinlocked section\n\nau1000_close() calls free_irq() while aup->lock is still held with\nspin_lock_irqsave(). free_irq() …","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 4536667fba8ddbaff2f2a135080ae6aabf737b5e","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < fc2233f1ab2a1ca562869bca6987d7477671388c","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f48763beab4eea41fc480c9702ec6eebe8d75e4f","Linux < 6.12.111","Linux < 6.18.53","Linux (all versions)"],"published":"2026-09-24","updated":"2026-09-25","sourceUpdated":"2026-09-25T13:17:22.377","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-93815","references":[{"url":"https://git.kernel.org/stable/c/4536667fba8ddbaff2f2a135080ae6aabf737b5e","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/f48763beab4eea41fc480c9702ec6eebe8d75e4f","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/fc2233f1ab2a1ca562869bca6987d7477671388c","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"tags":["nvd","cve.org"],"ingestedAt":"2026-09-24T16:47:15.894Z","slug":"CVE-2026-93815","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nnet: au1000: move free_irq out of the close-time spinlocked section\n\nau1000_close() calls free_irq() while aup->lock is still held with\nspin_lock_irqsave(). free_irq() can sleep because it takes the IRQ\ndescriptor request mutex, so it does not belong inside the close-time\nspinlocked section.\n\nThis was found by our static analysis tool and then confirmed by manual\nreview of the in-tree au1000_close() .ndo_stop path. The reviewed path\nkeeps aup->lock held across the MAC reset, queue stop and\nfree_irq(dev->irq, dev).\n\nA directed runtime validation kept that ndo_stop carrier and the same\nfree_irq(dev->irq, dev) operation under the driver lock. Lockdep reported\n\"BUG: sleeping function called from invalid context\" and \"Invalid wait\ncontext\" while free_irq() was taking desc->request_mutex, with\nau1000_close() and free_irq() on the stack.\n\nDrop aup->lock before freeing the IRQ. The protected close-time work still\nstops the device and queue before IRQ teardown, but the sleepable IRQ core\npath now runs outside the spinlocked section.\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":[]}