PEdit-CoW
CVE-2026-46331 is a Linux kernel vulnerability in the net/sched traffic-control packet editing path, specifically act_pedit and the function tcf_pedit_act(). The bug stems from incorrect copy-on-write range handling: tcf_pedit_act() computed the writable range for skb_ensure_writable() once before iterating over edit keys, using tcfp_off_max_hint, but that hint did not include runtime header offsets introduced by typed keys. As a result, part of the eventual write region could remain outside the copied/writable area, leading to a partial COW condition and an out-of-bounds write into shared backing memory, including page-cache pages. The upstream fix moved skb_ensure_writable() into the per-key loop so the actual write offset is known at the time of validation, added overflow checks for offset arithmetic, used skb_cow() for negative offsets such as Ethernet-header edits at ingress to ensure headroom is copied, and hardened offset_valid() against INT_MIN negation edge cases.
Are you exposed to this one?
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
Impact, mitigation & remediation
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
Impact
What an attacker gets, and what they’ve been doing with it.
Mitigation
If you can’t patch tonight, do this now.
Remediation
Patch, then assume compromise.
Exploits
2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).
This repository is a compact local privilege escalation proof-of-concept for CVE-2026-46331. It contains two files: a single C exploit source file and a README describing the vulnerability and impact. The main file, CVE-2026-46331.c, is a standalone Linux exploit that builds raw NETLINK_ROUTE messages to configure traffic-control state in the kernel, specifically matchall/pedit-related objects in net/sched. It uses loopback traffic on 127.0.0.1:4445 to exercise the vulnerable act_pedit path and appears to include an integrated write primitive ('pedit_primitive') with calibration support via /tmp/.pedit_calib. The exploit then locates a setuid-root su binary, parses its ELF entry point, and repeatedly writes shellcode into that entry offset through the corruption primitive. After successful corruption, it execve()s the modified su binary to obtain root code execution. This is not a scanner or detector; it is an actual exploit with a hardcoded payload, making it operational rather than a bare PoC. No external C2 or remote infrastructure is present; the exploit is entirely local and relies on vulnerable kernel behavior plus the presence of a usable setuid-root su target.
Repository contains a standalone local Linux privilege-escalation exploit for CVE-2026-46331 plus a reusable primitive and a verification harness. Structure: (1) pedit_primitive.c/.h implement the core page-cache overwrite primitive by configuring tc/netlink state on the loopback interface and abusing net/sched act_pedit to write beyond a stale COW range into page-cache-backed data sent via sendfile; setup() prepares loopback networking, opens a local TCP listener on 127.0.0.1:4445, and calibrates the file-offset delta using /tmp/.pedit_calib. api_fd_write() exposes the primitive as bounded 4-byte-slot writes to an arbitrary file descriptor, including O_RDONLY descriptors. (2) test_cve.c is a non-privilege-escalation testcase that creates /tmp/cve_target, reopens it read-only, performs 10 overwrite attempts at varying offsets/sizes, and verifies that the page cache changed despite only holding an O_RDONLY fd. (3) packet_edit_meme.c weaponizes the primitive into unprivileged local root: it locates a setuid-root su binary, parses ELF headers to find the executable entry-point file offset, forks a child that unshares user and network namespaces, maps itself to uid/gid 0 inside the namespace, calls setup(), and writes x86_64 shellcode over the cached su entry point. The parent then execves su from the initial namespace, causing the setuid-root binary to execute the injected shellcode and spawn an interactive root /bin/sh. Ubuntu-specific logic optionally re-execs through aa-exec with profiles trinity/chrome/flatpak to bypass AppArmor userns restrictions. Overall, this is a real exploit repository, not just a detector: it provides both a generic arbitrary page-cache overwrite primitive and an operational local root exploit payload.
Affected products & vendors
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
Recent activity
48 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A Linux kernel local privilege escalation vulnerability in the traffic control packet editing (pedit) subsystem caused by an out-of-bounds write related to improper copy-on-write range handling, allowing page cache memory corruption, privilege escalation, or system crash.
A Linux kernel vulnerability in net/sched act_pedit that allows an out-of-bounds page-cache write, discussed as part of the same broader family of page-cache corruption issues.
A local privilege escalation vulnerability in the Linux kernel traffic-control subsystem's act_pedit functionality. It is an out-of-bounds write that can corrupt shared page-cache memory, allowing an unprivileged local user to gain root by poisoning the cached in-memory image of a setuid binary.
A local privilege escalation vulnerability in the Linux kernel traffic control subsystem's act_pedit component caused by a missing bounds check leading to an out-of-bounds write and potential root access.
The version that knows your environment.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.