{"id":"CVE-2026-45932","state":"PUBLISHED","title":"bpf: Fix tcx/netkit detach permissions when prog fd isn't given","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Fix tcx/netkit detach permissions when prog fd isn't given\n\nThis commit fixes a security issue where BPF_PROG_DETACH on tcx or\nnetkit devices could be executed by any user when no program fd was\nprovided, bypassing permission checks. The fix adds a capability\ncheck for CAP_NET_ADMIN or CAP_SYS_ADMIN in this case.","publishedAt":"2026-05-27T12:17:50.353Z","updatedAt":"2026-10-21T12:40:59.729Z","severity":{"score":7.3,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"8e1623e7d61faf16cbadc80550da874303611ff5","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"0c249f523175963b0a746bba673ecebdf6cefd86","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"4e0772cded109c238411f2fac36ac39302758b81","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"3f04cc1e5374da4c5e791ae010a06cfea7bacbe6","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"ae23bc81ddf7c17b663c4ed1b21e35527b0a7131","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/bpf.h","include/linux/bpf_mprog.h","kernel/bpf/syscall.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.114","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.14","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.4","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/bpf.h","include/linux/bpf_mprog.h","kernel/bpf/syscall.c"]}],"references":["https://git.kernel.org/stable/c/8e1623e7d61faf16cbadc80550da874303611ff5","https://git.kernel.org/stable/c/0c249f523175963b0a746bba673ecebdf6cefd86","https://git.kernel.org/stable/c/4e0772cded109c238411f2fac36ac39302758b81","https://git.kernel.org/stable/c/3f04cc1e5374da4c5e791ae010a06cfea7bacbe6","https://git.kernel.org/stable/c/ae23bc81ddf7c17b663c4ed1b21e35527b0a7131"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:07.131Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/45xxx/CVE-2026-45932.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-45932","state":"PUBLISHED","datePublished":"2026-05-27T12:17:50.353Z","dateUpdated":"2026-10-21T12:40:59.729Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-13T15:03:33.086Z"},"containers":{"cna":{"title":"bpf: Fix tcx/netkit detach permissions when prog fd isn't given","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Fix tcx/netkit detach permissions when prog fd isn't given\n\nThis commit fixes a security issue where BPF_PROG_DETACH on tcx or\nnetkit devices could be executed by any user when no program fd was\nprovided, bypassing permission checks. The fix adds a capability\ncheck for CAP_NET_ADMIN or CAP_SYS_ADMIN in this case."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"8e1623e7d61faf16cbadc80550da874303611ff5","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"0c249f523175963b0a746bba673ecebdf6cefd86","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"4e0772cded109c238411f2fac36ac39302758b81","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"3f04cc1e5374da4c5e791ae010a06cfea7bacbe6","versionType":"git"},{"version":"e420bed025071a623d2720a92bc2245c84757ecb","status":"affected","lessThan":"ae23bc81ddf7c17b663c4ed1b21e35527b0a7131","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/bpf.h","include/linux/bpf_mprog.h","kernel/bpf/syscall.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.114","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.14","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.4","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/linux/bpf.h","include/linux/bpf_mprog.h","kernel/bpf/syscall.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8e1623e7d61faf16cbadc80550da874303611ff5"},{"url":"https://git.kernel.org/stable/c/0c249f523175963b0a746bba673ecebdf6cefd86"},{"url":"https://git.kernel.org/stable/c/4e0772cded109c238411f2fac36ac39302758b81"},{"url":"https://git.kernel.org/stable/c/3f04cc1e5374da4c5e791ae010a06cfea7bacbe6"},{"url":"https://git.kernel.org/stable/c/ae23bc81ddf7c17b663c4ed1b21e35527b0a7131"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H","baseScore":7.3,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerability is reached through the local bpf(2) syscall (BPF_PROG_DETACH command); there is no remote network entry point to this code.\nAC:L - An unprivileged user can reliably trigger the detach with a single deterministic syscall; there is no race, timing, or memory-layout dependency, and the only precondition (a tcx/netkit program already attached) is a standard deployment condition.\nPR:L - The entire bug is that no capability is required where CAP_NET_ADMIN/CAP_SYS_ADMIN should be; any basic local unprivileged user can call BPF_PROG_DETACH, which is not gated by unprivileged_bpf_disabled or any default check.\nUI:N - Detaching the program requires only the attacker's own syscall; no action by any other user or victim is needed.\nS:U - The impact stays within the kernel's own security authority (manipulating network BPF attachment state); no VM/IOMMU/sandbox boundary is crossed.\nC:L - Detaching does not read kernel memory directly, but removing a tcx/netkit filtering/isolation program (e.g., a Cilium network policy) can expose traffic or services that were previously confidential, a limited information exposure.\nI:H - An unprivileged user can make an unauthorized, CAP_NET_ADMIN-level modification to the device's network datapath, and by repeating the call can remove all attached programs, fully subverting the configured network security/policy enforcement.\nA:H - Removing the tcx/netkit datapath program disrupts packet processing for the affected device; in eBPF-datapath deployments this breaks forwarding/NAT/policy and causes loss of network connectivity for the node or its workloads."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-21T12:40:59.729Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.12.114"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.18.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.19.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}