CVE-2026-3854 + Copy Fail + Claude Code: Three Emergency Patches Before Week's End
The Triage
Three critical-severity bugs this cycle. One in the code host, one in the kernel, one in the coding agent. All three have public PoCs or in-the-wild activity. None survive a routine change window.
CVE-2026-3854 — GitHub Enterprise Server RCE
Reported by Wiz. CVSS 8.7. The vulnerable component is GitHub's babeld service. Mechanism: semicolons in git push option values override rails_env, custom_hooks_dir, and repo_pre_receive_hooks. Chaining those three escapes the pre-receive sandbox and executes arbitrary binaries as the git service user. GitHub.com was patched in six hours. 88% of self-hosted GHES instances have not patched.
Blast radius covers Actions runners, deploy keys, cached PATs, every secret, every repository. The entry point is anyone with push access: developers, CI service accounts, authenticated forks. Fixed versions: 3.14.24 / 3.15.19 / 3.16.15 / 3.17.12 / 3.18.6 / 3.19.3.
If the GHES instance sits in the unpatched 88%, treat every push-capable account as a live attack path until the upgrade lands.
CVE-2026-31431 — 'Copy Fail' Linux Kernel LPE
A nine-year-old flaw in the kernel's algif_aead crypto module. The public PoC is a 732-byte Python script that lifts any unprivileged local user to root. No per-distro tuning. The exposure lands hardest on multi-tenant container environments: one compromised workload breaks namespace and cgroup isolation, reaching kubelet credentials and neighbor-tenant data. Remediation is patch the kernel or blacklist the module — echo 'install algif_aead /bin/true' > /etc/modprobe.d/disable-algif_aead.conf, rebuild initramfs, reboot.
CVE-2026-39861 — Claude Code Sandbox Escape (CVSS 10.0)
Claude Code below version 2.1.64 ships a symlink-based sandbox escape. A crafted workspace causes the agent to read and write files outside the project root. On a developer laptop that reaches SSH keys, cloud credentials, and local secrets. Push updates to ≥2.1.64 via MDM. Audit shell history and workspace dirs for symlink artifacts.
What Connects Them
All three convert implicit trust in routine developer workflows — pushing code, running a container, opening a workspace — into full compromise. EDR does not inspect git push options. SAST does not see kernel modules. Nobody monitors symlink creation in agent workspaces. The attack surface is the developer toolchain, and each bug sits at a different layer of the same stack.
What to do
Patch GHES to 3.14.24 / 3.15.19 / 3.16.15 / 3.17.12 / 3.18.6 / 3.19.3 — emergency change window today
Post-patch: rotate all Actions runner tokens, deploy keys, and cached PATs; hunt babeld logs for semicolons in X-Stat headers
Patch Linux kernels or blacklist algif_aead on all container hosts and multi-tenant infrastructure by Friday
Force Claude Code update to ≥2.1.64 via MDM; audit developer workspaces for out-of-root symlinks
Add detection for AF_ALG socket creation by unprivileged UIDs and unexpected setuid transitions on container hosts