The CVSS 8.8 rating on CVE-2026-72053 overstates the practical exploitability of this vulnerability by ignoring the namespace confinement constraints that make exploitation non-trivial. The issue is a cross-namespace authorization gap in the ipip_changelink() path: the capability check validates CAP_NET_ADMIN against the device's network namespace (dev_net(dev)), but the tunnel's operational state lives in a separate namespace (t->net) that may belong to a different security domain. For an attacker to exploit this, they need CAP_NET_ADMIN in one namespace while the tunnel exists in another where they lack that capability—this is not a trivial precondition. It requires either compromising a container that shares a host network namespace, or exploiting a misconfiguration where the attacker already has partial network namespace access.
This vulnerability is a serial repetition failure, not a one-off oversight. The kernel's RTNL subsystem has a well-established pattern: capability checks against dev_net(dev). When ipip_changelink() was written to touch a second network namespace, the developer followed the established framework pattern because that's what the API taught them to do. The kernel provides rtnl_dev_link_net_capable() for dual-endpoint validation, but there's nothing in the function signature or documentation that signals 'you must validate against both endpoints' when operating on tunnels. This is a context trap: dozens of other changelink handlers involve one network namespace, making it easy to forget that IPIP involves two. GRE, SIT, and other tunnel types likely share this structural pattern.
The fix is straightforward—add rtnl_dev_link_net_capable() before attribute parsing—but that simplicity is the point. This is a one-line logic error in namespace boundary handling, not a deep structural flaw. What this reveals is a pattern risk: any kernel operation spanning multiple network namespaces must validate capabilities against all endpoints, not just one.
Defenders should audit GRE, SIT, and other tunnel implementations for similar cross-netns capability checking gaps. More critically, examine your container environment: every major cloud provider runs workloads in shared-host network namespaces. The precondition this CVE requires—CAP_NET_ADMIN in one netns while a tunnel lives in another—is the standard configuration for Kubernetes pods with host networking enabled, or for any container escape scenario where the attacker has compromised a process with namespace privileges. The blast radius isn't 'attacker modifies one tunnel.' It's 'attacker with partial namespace foothold rewrites routing state that affects the host's entire network stack.' That's kernel-level persistence and traffic manipulation.
The low EPSS of 0.00164 doesn't indicate this is low-risk—it indicates EPSS doesn't model chained exploitation. EPSS measures standalone exploitation probability, which is meaningless for a vulnerability whose threat model requires a prior foothold. A sophisticated actor who already has multi-netns access (the precondition defenders underweight) now has a published CVE with a known one-line fix. The exposure window between CVE publication and widespread remediation is when that actor is most operational. The 'simple fix' narrative enables that delay: downstream patch queues deprioritize one-line corrections, security teams mentally file them as 'can wait.'