CVE-2026-47766
CVE-2026-47766 is a trust model failure in crun, not a traditional code defect. The vulnerability stems from crun treating OCI bundle structure as implicitly trusted input — when a bundle specifies a rootfs/dev path, the runtime assumed that path existed within the intended container boundary. The attack vector exploits this by making rootfs/dev itself a symlink pointing outside the container. The fix adds O_NOFOLLOW to device node handling, but this treats the symptom rather than the disease. The mechanistically simple nature of the bug (missing O_NOFOLLOW flag) obscures its analytical significance. This is the same class of vulnerability that plagued setuid binaries in the 1990s and package managers with malicious symlinks in tarballs — a lineage demonstrating that filesystem symlink handling during privilege transitions is genuinely hard to reason about. Each generation of developers rediscovers this failure mode independently because the semantic gap between what path operations appear to do and what they actually do under adversarial manipulation is not intuitive. What makes this worth your attention: the ptmx symlink replacement demonstrates the runtime can actively mutate pre-existing host files, not just create new ones. This crosses the container-host boundary in a way that could interfere with host security controls. The CVSS of 5.1 reflects traditional exploit primitives but misses the real risk — trust boundary violations operate differently than memory corruption; severity depends heavily on operational context (rootful vs rootless, replay workflows vs normal starts) in ways CVSS vectors cannot express. Audit your container tooling for similar assumptions. If you implement an OCI runtime or build tooling that processes bundles, treat bundle contents as untrusted input requiring explicit boundary verification. The default device setup path in crun was legacy fallback code that escaped active maintenance — exactly the kind of forgotten code where security regressions persist. Beyond crun, examine runc, youki, and any other runtime that processes OCI bundles without explicit boundary verification. The patch exists in one repository; the class of vulnerability likely exists in others. Prioritize rootful deployments and replay/debugging workflows where old bundles may be re-executed with newer runtimes, as these compound the exposure window.
Reviewed through automated stages and approved by a human before publication.