{"id":"CVE-2026-74736","state":"PUBLISHED","title":"net/sched: cls_bpf: reject dev-bound programs bound to a different device","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_bpf: reject dev-bound programs bound to a different device\n\ncls_bpf_prog_from_efd() obtained a SCHED_CLS program via\nbpf_prog_get_type_dev() but never verified that a device-bound (offloaded)\nprogram's bound netdev matches the TC netdev the classifier is being\nattached to. This let a program loaded with prog_ifindex for device A be\nattached via cls_bpf + skip_sw to device B; deleting device A then\ndestroyed the program's offload state while it was still attached to\ndevice B, triggering a netdevsim WARN (panic with panic_on_warn=1).\n\nMirror the XDP attach path (net/core/dev.c) and reject the attach with\n-EINVAL when a dev-bound program's bound device does not match the\ntarget device.","publishedAt":"2026-08-26T14:36:49.950Z","updatedAt":"2026-10-16T19:16:12.701Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/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":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"ec5a552f4b2d841c6c021752450716e1a9676661","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"daf546ab5763ce6a18280cb4db060e836c515301","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"adb3e7c26a51a10d94a241c6de7a81a2863dcacf","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"5685bbbd3cbfbeb0de96a1d275a5ca073dfebb5e","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"120977e2c096deea4e866e4273be9220b957c29e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sched/cls_bpf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.3","versionType":"semver"},{"version":"6.6.153","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.105","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.46","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.10","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":["net/sched/cls_bpf.c"]}],"references":["https://git.kernel.org/stable/c/ec5a552f4b2d841c6c021752450716e1a9676661","https://git.kernel.org/stable/c/daf546ab5763ce6a18280cb4db060e836c515301","https://git.kernel.org/stable/c/adb3e7c26a51a10d94a241c6de7a81a2863dcacf","https://git.kernel.org/stable/c/5685bbbd3cbfbeb0de96a1d275a5ca073dfebb5e","https://git.kernel.org/stable/c/120977e2c096deea4e866e4273be9220b957c29e"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74736.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74736","state":"PUBLISHED","datePublished":"2026-08-26T14:36:49.950Z","dateUpdated":"2026-10-16T19:16:12.701Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.930Z"},"containers":{"cna":{"title":"net/sched: cls_bpf: reject dev-bound programs bound to a different device","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_bpf: reject dev-bound programs bound to a different device\n\ncls_bpf_prog_from_efd() obtained a SCHED_CLS program via\nbpf_prog_get_type_dev() but never verified that a device-bound (offloaded)\nprogram's bound netdev matches the TC netdev the classifier is being\nattached to. This let a program loaded with prog_ifindex for device A be\nattached via cls_bpf + skip_sw to device B; deleting device A then\ndestroyed the program's offload state while it was still attached to\ndevice B, triggering a netdevsim WARN (panic with panic_on_warn=1).\n\nMirror the XDP attach path (net/core/dev.c) and reject the attach with\n-EINVAL when a dev-bound program's bound device does not match the\ntarget device."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"ec5a552f4b2d841c6c021752450716e1a9676661","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"daf546ab5763ce6a18280cb4db060e836c515301","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"adb3e7c26a51a10d94a241c6de7a81a2863dcacf","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"5685bbbd3cbfbeb0de96a1d275a5ca073dfebb5e","versionType":"git"},{"version":"2b3486bc2d237ec345b3942b7be5deabf8c8fed1","status":"affected","lessThan":"120977e2c096deea4e866e4273be9220b957c29e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sched/cls_bpf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.3","versionType":"semver"},{"version":"6.6.153","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.105","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.46","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.10","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":["net/sched/cls_bpf.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ec5a552f4b2d841c6c021752450716e1a9676661"},{"url":"https://git.kernel.org/stable/c/daf546ab5763ce6a18280cb4db060e836c515301"},{"url":"https://git.kernel.org/stable/c/adb3e7c26a51a10d94a241c6de7a81a2863dcacf"},{"url":"https://git.kernel.org/stable/c/5685bbbd3cbfbeb0de96a1d275a5ca073dfebb5e"},{"url":"https://git.kernel.org/stable/c/120977e2c096deea4e866e4273be9220b957c29e"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Exploitation requires local RTM_NEWTFILTER and bpf(2) syscalls to misattach a dev-bound cls_bpf program and delete the bound netdev; received network packets are not the trigger and no remote pre-auth path reaches this code.\nAC:L - The attacker fully controls bpf load on device A, cls_bpf attach with SKIP_SW to device B, and deletion of device A, deterministically reproducing the offload teardown while the program remains referenced on device B.\nPR:L - RTNL TC filter operations require CAP_NET_ADMIN and BPF_PROG_TYPE_SCHED_CLS loading requires CAP_NET_ADMIN (and often CAP_BPF), all grantable to the namespace root created by an unprivileged user via unshare -Urn per kernel CNA guidance.\nUI:N - No victim interaction is required; the attacker performs bpf program load, cls_bpf attach, and netdev deletion through their own namespace-local administrative operations.\nS:U - Impact is kernel memory corruption, panic, or privilege escalation within the same host kernel and does not cross VM, container, or IOMMU boundaries into a separate security authority.\nC:H - Deleting the bound netdev destroys bpf offload private state while cls_bpf on another device still holds the program reference, freeing dev_private metadata and creating a use-after-free that can leak kernel heap contents on subsequent TC/BPF operations.\nI:H - The lifetime mismatch frees attacker-influenceable offload objects while references remain, enabling heap grooming and memory corruption that can be leveraged into arbitrary kernel writes or code execution.\nA:H - netdevsim WARNs when offload state is destroyed while the program remains loaded on another port, causing kernel panic on systems with panic_on_warn enabled, and dereferencing freed offload state can also trigger kernel oops or hang."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-27T05:00:58.564Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.6.153"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.12.105"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"6.18.46"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"7.1.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-74736","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T19:15:56.417878Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T19:16:12.701Z"}}]}}}