CVE-2026-72347 patches an undefined-shift bug in the CONNMARK target's shift_dir parameter — when shift_bits is 32 or greater on a 32-bit value, the behavior is undefined. The fix adds validation in connmark_tg_check(), enforcing fail-at-installation: malformed rules are rejected when the rule is loaded, never reaching the packet-processing path. That's the right design choice, but the more important question is how this gap existed at all.

The vulnerability lives in a revision-2 target. When CONNMARK was extended with parameterized shift operations, the check() function was copied from revision-1, which had no arithmetic parameters to validate. This genetic pattern — revision copy-paste with stale check() functions — is the real systemic issue. New parameters get added to the runtime logic, but the validation path never learns about them. This isn't unique to CONNMARK.

The CVSS 7.3 reflects real code-execution-adjacent undefined behavior, but the practical risk is narrower. Exploiting this requires CAP_NET_ADMIN — root-level access to write iptables rules. In isolated standalone systems, the blast radius is small. However, CAP_NET_ADMIN is routinely granted to containers in production Kubernetes workloads via capability configuration, and older DaemonSet deployments often run with --privileged by default. The EPSS score of 0.00174 likely reflects the absence of pre-existing exploit tooling, not the absence of reachable attack surface. The population of underconfigured containerized workloads is non-trivial.

The deeper concern is architectural. The fix validates in connmark_tg_check() because that function runs at rule-installation time — before any packet hits the target. This is the correct pattern: fail early, fail at load. But the assumption that check() functions must validate arithmetic parameters was not applied systematically. The undefined behavior manifests differently across architectures — on x86-64, the shift amount silently reduces modulo 32, which masks the bug on common hardware while still being undefined behavior. Other architectures may crash. The UB