{"id":"CVE-2026-80694","state":"PUBLISHED","title":"net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller\n\nmtk_handle_irq_rx expects a struct mtk_eth * (matching the request_irq\ncookie), but mtk_poll_controller incorrectly passed the net_device *.\nCalling ndo_poll_controller with CONFIG_NET_POLL_CONTROLLER enabled\nwould then crash.","publishedAt":"2026-08-28T06:53:00.442Z","updatedAt":"2026-10-30T12:30:56.887Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"979a736fcac2ee32b55dafa6766188aa8b6927a4","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"a9133c4d335e48ba92f4daed10c506378924f976","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"3bd58ac9ca0c552651f533c1bd280dd19ae7d4e8","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"276f1f180f55d56cf5992a581e20ed2b3dfa6ced","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"7eb46318d53940dab63dea7130e720b67a656104","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"e095f249e2209674f6366f6db0383a2b96e19239","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mediatek/mtk_eth_soc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.8","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mediatek/mtk_eth_soc.c"]}],"references":["https://git.kernel.org/stable/c/979a736fcac2ee32b55dafa6766188aa8b6927a4","https://git.kernel.org/stable/c/a9133c4d335e48ba92f4daed10c506378924f976","https://git.kernel.org/stable/c/3bd58ac9ca0c552651f533c1bd280dd19ae7d4e8","https://git.kernel.org/stable/c/276f1f180f55d56cf5992a581e20ed2b3dfa6ced","https://git.kernel.org/stable/c/7eb46318d53940dab63dea7130e720b67a656104","https://git.kernel.org/stable/c/e095f249e2209674f6366f6db0383a2b96e19239"],"weaknesses":[],"ingestedAt":"2026-10-30T12:50:04.827Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80694.json","commit":"1f312381e38164a43607eebab851b151dd16861e","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80694","state":"PUBLISHED","datePublished":"2026-08-28T06:53:00.442Z","dateUpdated":"2026-10-30T12:30:56.887Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.785Z"},"containers":{"cna":{"title":"net: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: mtk_eth_soc: pass eth to mtk_handle_irq_rx in poll_controller\n\nmtk_handle_irq_rx expects a struct mtk_eth * (matching the request_irq\ncookie), but mtk_poll_controller incorrectly passed the net_device *.\nCalling ndo_poll_controller with CONFIG_NET_POLL_CONTROLLER enabled\nwould then crash."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"979a736fcac2ee32b55dafa6766188aa8b6927a4","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"a9133c4d335e48ba92f4daed10c506378924f976","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"3bd58ac9ca0c552651f533c1bd280dd19ae7d4e8","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"276f1f180f55d56cf5992a581e20ed2b3dfa6ced","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"7eb46318d53940dab63dea7130e720b67a656104","versionType":"git"},{"version":"8186f6e382d8719d0a4bc0ef218c4dd7cf55b496","status":"affected","lessThan":"e095f249e2209674f6366f6db0383a2b96e19239","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mediatek/mtk_eth_soc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.8","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.103","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.44","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.8","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/mediatek/mtk_eth_soc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/979a736fcac2ee32b55dafa6766188aa8b6927a4"},{"url":"https://git.kernel.org/stable/c/a9133c4d335e48ba92f4daed10c506378924f976"},{"url":"https://git.kernel.org/stable/c/3bd58ac9ca0c552651f533c1bd280dd19ae7d4e8"},{"url":"https://git.kernel.org/stable/c/276f1f180f55d56cf5992a581e20ed2b3dfa6ced"},{"url":"https://git.kernel.org/stable/c/7eb46318d53940dab63dea7130e720b67a656104"},{"url":"https://git.kernel.org/stable/c/e095f249e2209674f6366f6db0383a2b96e19239"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The bug is only reachable via ndo_poll_controller called from netpoll during netconsole transmit polling on the mtk netdev; on MediaTek routers/gateways with netconsole on the primary ethernet interface, remote network traffic that triggers kernel logging and netpoll send retries can invoke the corrupt path without local access.\nAC:L - Once netconsole is bound to the mtk interface, netpoll_poll_dev calls mtk_poll_controller deterministically during log transmission and skb allocation retries, without races or attacker-dependent timing beyond routine network activity.\nPR:N - Exploitation requires no attacker credentials or capabilities; only an administrator-preconfigured netconsole target on the mtk netdev (an environmental prerequisite), after which any unprivileged remote party can trigger the path by causing kernel log emission.\nUI:N - No victim user action is required beyond normal system operation; triggering relies on automated kernel logging and netpoll activity, not on a user opening files, mounting filesystems, or interacting with the UI.\nS:U - Impact is confined to kernel memory corruption and crash within the same kernel security authority; this is not a VM escape, sandbox breakout, or cross-authority boundary violation.\nC:H - Casting net_device to mtk_eth causes reads of attacker-influenced adjacent memory through napi_schedule_prep and potential MMIO via a misinterpreted soc/base pointer, constituting exploitable type confusion rather than a bounded NULL dereference.\nI:H - The mistyped pointer causes an unconditional increment at the mtk_eth rx_events offset (writing into net_device/adjacent heap memory) and may corrupt or schedule a bogus NAPI structure, giving memory corruption primitives.\nA:H - The fix commit and handler logic confirm the mistyped pointer leads to invalid structure access and likely kernel oops/panic when netpoll_controller is invoked, causing complete loss of availability on affected devices."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:30:56.887Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.12.103"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.18.44"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}