{"id":"CVE-2026-31487","title":"spi: use generic driver_override infrastructure","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nspi: use generic driver_override infrastructure\n\nWhen a driver is probed through __driver_attach(), the bus' match()\ncallback is called without the device lock held, th…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < 6e8eb467bed6aa1a563dba8f366c9fd76ba0004e","Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < eedf220442d13b6d97294e5b0ac8a2c38ee1a1a0","Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < c73a58661a760373d08a6883af4f0bb5cc991a67","Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < e0ae367a2de06c49aa1de6ec9b1ab6860bbb2cf0","Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < cc34d77dd48708d810c12bfd6f5bf03304f6c824","Linux 4.20"],"published":"2026-04-22","updated":"2026-10-21","sourceUpdated":"2026-10-21T12:39:19.125Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-31487","references":[{"url":"https://git.kernel.org/stable/c/6e8eb467bed6aa1a563dba8f366c9fd76ba0004e"},{"url":"https://git.kernel.org/stable/c/eedf220442d13b6d97294e5b0ac8a2c38ee1a1a0"},{"url":"https://git.kernel.org/stable/c/c73a58661a760373d08a6883af4f0bb5cc991a67"},{"url":"https://git.kernel.org/stable/c/e0ae367a2de06c49aa1de6ec9b1ab6860bbb2cf0"},{"url":"https://git.kernel.org/stable/c/cc34d77dd48708d810c12bfd6f5bf03304f6c824"}],"tags":["cve.org"],"epss":0.00125,"epssPercentile":0.01992,"ingestedAt":"2026-10-21T12:48:53.665Z","slug":"CVE-2026-31487","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nspi: use generic driver_override infrastructure\n\nWhen a driver is probed through __driver_attach(), the bus' match()\ncallback is called without the device lock held, thus accessing the\ndriver_override field without a lock, which can cause a UAF.\n\nFix this by using the driver-core driver_override infrastructure taking\ncare of proper locking internally.\n\nNote that calling match() from __driver_attach() without the device lock\nheld is intentional. [1]\n\nAlso note that we do not enable the driver_override feature of struct\nbus_type, as SPI - in contrast to most other buses - passes \"\" to\nsysfs_emit() when the driver_override pointer is NULL. Thus, printing\n\"\\n\" instead of \"(null)\\n\".\n\n## Affected\n\n- `Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < 6e8eb467bed6aa1a563dba8f366c9fd76ba0004e`\n- `Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < eedf220442d13b6d97294e5b0ac8a2c38ee1a1a0`\n- `Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < c73a58661a760373d08a6883af4f0bb5cc991a67`\n- `Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < e0ae367a2de06c49aa1de6ec9b1ab6860bbb2cf0`\n- `Linux >= 5039563e7c25eccd7fec1de6706011009d1c5665 < cc34d77dd48708d810c12bfd6f5bf03304f6c824`\n- `Linux 4.20`\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":[]}