Two Kernel Root Exploits in the Wild — Plus an AI Tool Attack Class That Chains With Them
The Kernel Bugs: Different Subsystems, Same Outcome
CVE-2026-46331 ('pedit COW') is an out-of-bounds write in the tc (traffic-control) act_pedit action. It copies a packet action structure without honoring copy-on-write semantics, so two references write the same memory. 'DirtyClone' races skb_clone against a freeing path in packet cloning. JFrog published the 'DirtyFrag family' name, implying sibling bugs in the same code paths that haven't been disclosed yet. Neither exploit requires exotic primitives. Neither needs a tuned heap spray. Shell on box = root on box.
Why Container Isolation Is Not a Defense
The kernel is shared. A compromised pod on a multi-tenant Kubernetes node escalates to the host, and from the host to every other pod on that node. The blast radius isn't one workload — it's the entire node's tenant roster. CI runners are the soft target most teams forget because they treat the runner as ephemeral and the kernel as someone else's problem. Build runners executing npm postinstall or untrusted test suites are the fastest path from 'public PoC' to 'compromised infrastructure.'
Mitigation Priority Order
- Inventory live kernel versions —
uname -racross the fleet, not package manifests. Live-patched hosts are fine; hosts pending reboot are not. - Disable unprivileged user namespaces where possible — this closes the reachability path to both bugs for most workloads. It is a mitigation, not a fix.
- Blocklist
act_pediton hosts that don't need traffic-control packet editing (most application servers). Verify first — if tc does rate limiting or traffic shaping, removing it breaks things. - Patch and reboot starting with multi-tenant surfaces: Kubernetes nodes, CI workers, shared compute.
The AI Workspace Trust Problem Chains With This
Amazon Q Developer has a separate vulnerability where opening a malicious repository is enough to exfiltrate cloud credentials. The mechanism: a poisoned MCP configuration file in the repo executes arbitrary commands with the developer's ambient AWS credentials when the workspace is trusted. This is the logical evolution of .env poisoning, amplified by AI tools with broader execution context.
Any AI coding tool that executes based on repo-local configuration without explicit sandboxing is vulnerable to this same class. The fix isn't 'patch Amazon Q' — it's rethinking how AI tools interact with untrusted workspace artifacts.
The chain is clear: MCP poisoning gives initial shell access → kernel LPE gives root → lateral movement across the node. Both halves of this chain have public exploits right now. The tools affected include Q Developer, Cursor (.cursor/ configs), Copilot (workspace settings), and any tool that auto-trusts repo-local configuration.
What to do
Run `uname -r` audit across entire fleet and identify hosts pending reboot — complete by end of day
Disable unprivileged user namespaces on all CI runners and multi-tenant Kubernetes nodes this week
Blocklist act_pedit kernel module on hosts not using tc traffic shaping — validate with netops first
Audit AI coding tool workspace trust settings — disable auto-trust for MCP configs in Q Developer, review .cursor/ and workspace settings policies