CVE-2026-90049Disclosure

MEDIUMCVSS 9.3 · CRITICAL

Exploit discussion active in current signal (1 latest mentions)

Immediate actions

  • Patch affected systems immediately
  • Hunt for exploitation attempts and persistence artifacts
  • Increase monitoring for publicly documented tradecraft

Recommended action window: High priority (within 72h)

NVD description

In the Linux kernel, the following vulnerability has been resolved: net: skbuff: don't skb_tx_error() the source skb in skb_zerocopy() skb_zerocopy() copies frags from @from into @to. On an skb_orphan_frags() failure it calls skb_tx_error(@from), a destructive operation on the source skb the copy helper does not own. That completes @from's zerocopy uarg and clears SKBFL_ALL_ZEROCOPY, including the SKBFL_SHARED_FRAG page-ownership marker. Both callers already report the failure on their own drop path. nfnetlink_queue does it at nla_put_failure, and Open vSwitch does it in the flow-miss drop arm of ovs_dp_process_packet(), so nothing is lost by dropping it here. On Open vSwitch's OVS_ACTION_ATTR_USERSPACE path the skb is not freed on this error: do_execute_actions() ignores output_userspace()'s return value and, unless the upcall was the last action, keeps forwarding the same skb through the flow's remaining actions. The uarg is completed while that skb is still in flight, telling the producer its buffers are free, and SKBFL_SHARED_FRAG is cleared on an skb the rest of the stack still handles. That flag is what makes esp_input() call skb_cow_data() instead of decrypting in place, so a later local ESP delivery can decrypt over frags the skb does not own privately. Leave error reporting to the callers.

4.0/ 10 priority

Sources & remediation

Priority

MEDIUM

Exploitation

NONE

PoC

YES

Patch

AVAILABLE

Momentum

STABLE

Threat summary

  • Public PoC and exploit tooling are both present
  • Patch or workaround signal is available
  • 3 mentions across 3 observed days
  • Momentum state: stable

What's happening

  • Exploit tool or code specified in 1 signal
  • PoC mentioned or linked in 1 signal
  • Patch or workaround mentioned in 2 signals
  • Technical details provided in 3 signals
  • Disclosure: 1 classified signal
  • Peaked 2d ago at 1 mentions (2026-09-16); latest day: 1
  • 3 total mentions across 3 days

Deep dive

Activity timeline3 mentions / 3d
00111Mentions · 2026-09-16: 1Mentions · 2026-09-17: 1Mentions · 2026-10-24: 1PoC Mentioned / Linked · 2026-10-24: 1Exploit Tool / Code · 2026-10-24: 1Patch / Workaround · 2026-09-17: 1Patch / Workaround · 2026-10-24: 1Technical Details · 2026-09-16: 1Technical Details · 2026-09-17: 1Technical Details · 2026-10-24: 109-1609-1710-24
Signal classification3 categories
Disclosure
133.3%
Patch
133.3%
Exploit
133.3%
Referenced assets1 URL
By indicator
Classification over time
DateTotalLabels
2026-09-161
Disclosure1
2026-09-171
Patch1
2026-10-241
Exploit1
Full discourse3 posts
  • DFIR Radar@DFIR_Radar
    Exploit

    A public root exploit for ZDI-CAN-33367, a pre-CVE Linux kernel LPE, targets Ubuntu, Debian, and AlmaLinux with no merged fix yet. Five more Linux flaws disclosed simultaneously, two rated CVSS 9.0, widen the exposure window for defenders this week. Key findings: - ZDI-CAN-33367 is the seventh path to drop the Dirty Frag flag first introduced by CVE-2026-43284. skb_zerocopy() moves shared page-cache pages into a new socket buffer without carrying the shared-frag marker, so ESP decrypts in place and writes attacker-controlled bytes into the page cache. The code path dates to kernel 3.14. A patch ("net: skbuff: propagate shared-frag marker in skb_zerocopy()") is on netdev but unmerged. TuxCare confirmed a root shell on AlmaLinux 8-10, CloudLinux 9-10, Debian 12-13, and Ubuntu 24.04 and 26.04. A kernel carrying only the CVE-2026-90049 fix is not protected. - The exploit runs entirely as an ordinary unprivileged user process through a fixed syscall sequence: unshare into new user and network namespaces, write sysctls, bring up an nlmon interface, install XFRM state over netlink, add an nftables NFQUEUE rule, attach a tc pedit action with a redirect, then splice() into a socket on 127.0.0[.]1. No KASLR leak required. Modules needed: nlmon, nft_queue, nfnetlink_queue, cls_u32, act_pedit, act_mirred, and esp4. - ZDI-CAN-33774 and ZDI-CAN-33549 are both CVSS 9.0 ksmbd bugs. 33774 is a pre-auth dispatch race that leaks 28 bytes of kernel heap per attempt and can crash the kernel. 33549 is an integer underflow in the SMB Direct RDMA transport leading to a heap overflow of up to 8 KB. Neither affects Samba (smbd). A fix for 33774 is in ksmbd-for-next but unreleased. Exposure check: look for the ksmbd kernel module, the ksmbd.mountd daemon, and a kernel-owned listener on TCP 445. - ZDI-CAN-34068 is a CVSS 8.8 out-of-bounds write in vmwgfx, the VMware virtual GPU kernel driver, exploitable only on VMware guests (vSphere, Workstation, VMware-based VDI). No patch exists. The trigger is DRM ioctl() calls on the vmwgfx device node by a local process. Sysdig TRT confirmed it does not reproduce on Lima or EC2 instances. Disabling 3D acceleration or blocking the vmwgfx module removes exposure on guests that do not need it. - None of the six bugs has a CVE ID assigned and no in-the-wild exploitation has been reported as of publication, but reproduction details were sent to public mailing lists before fixes merged, meaning attackers had the same disclosure window defenders did. DFIR takeaway: ZDI-CAN-33367 is the priority. The syscall sequence is distinctive enough to catch in motion: no legitimate unprivileged process unshares into both user and network namespaces, installs XFRM state, configures nftables NFQUEUE, attaches tc pedit, and then calls splice() to loopback. Instrument your runtime sensor for that chain. For ksmbd, runtime detection is a backstop only since the race and overflow happen inside kernel worker threads with no attacker process visible. Run inventory now: grep loaded modules and netstat output for ksmbd and TCP 445 across your estate. For Kubernetes, enforce seccomp RuntimeDefault cluster-wide via the kubelet --seccomp-default flag. Restrict unprivileged user namespaces (user.max_user_namespaces=0, or kernel.unprivileged_userns_clone=0 on Debian) on hosts that do not need rootless containers. Track these by ZDI ID until CVEs are assigned; your scanner will not find them yet. #DFIR_Radar

    Post summary

    The text discloses a publicly available root exploit for ZDI‑CAN‑33367 affecting Ubuntu, Debian, AlmaLinux and other Linux distributions, along with details on additional high‑severity kernel bugs, but notes that no CVE IDs or in‑the‑wild exploitation have been reported yet. It provides explicit exploitation steps, patch status, and DFIR detection/mitigation advice.

    10000183
    2.1K followersView on X
  • DFIR Radar@DFIR_Radar
    Patch

    New LPE bug family: Open vSwitch strips SKBFL_SHARED_FRAG from a live forwarded skb, reopening the Fragnesia page-cache write primitive. Deterministic root on default Arch, Fedora, Debian, Amazon Linux, and RHEL with no race condition required. Tracked as CVE-2026-90049, CVE-2026-89487, and CVE-2026-80977. Public since 2026-08-13, fixed in mainline and stable on 2026-09-04. Actively exploitable on unpatched kernels today. - Root cause is in queue_userspace_packet() inside net/openvswitch/datapath.c. When an OVS upcall fails, skb_tx_error() calls skb_zcopy_clear(), which clears the entire SKBFL_ALL_ZEROCOPY group including SKBFL_SHARED_FRAG. Because do_execute_actions() ignores the upcall return value, the same skb, now missing its ownership marker but still carrying foreign page-cache frags, continues down the action pipeline to OUTPUT. If that output reaches esp_input(), the gate at skb_has_shared_frag() passes and the in-place AES-GCM decrypt writes attacker-controlled plaintext directly into the page-cache folio. - Exploitation requires three things an unprivileged user can satisfy: CAP_NET_ADMIN inside a user namespace (GENL_UNS_ADMIN_PERM on all OVS genl ops, so unshare -Urn is enough), openvswitch.ko autoloading on first genl family resolution (no CAP_SYS_MODULE needed), and an MSG_ZEROCOPY send over a PROT_READ MAP_SHARED mapping of a root-owned file so SKBFL_DONT_ORPHAN keeps the page-cache frag from being copied during the upcall. #DFIR_Radar

    Post summary

    The post discloses a new Open vSwitch/Linux local privilege escalation bug family tracked as CVE-2026-90049, CVE-2026-89487, and CVE-2026-80977, with detailed root-cause and exploit prerequisite information. It states fixes landed in mainline and stable kernels on 2026-09-04, but does not provide PoC/exploit code or report active in-the-wild exploitation.

    10000208
    1.9K followersView on X
  • CVE@CVEnew
    Disclosure

    CVE-2026-90049 In the Linux kernel, the following vulnerability has been resolved: net: skbuff: don't skb_tx_error() the source skb in skb_zerocopy() skb_zerocopy() copies frags f… https://www.cve.org/CVERecord?id=CVE-2026-90049

    Post summary

    The text announces a resolved Linux kernel vulnerability involving skb_zerocopy() and skb_tx_error(). It provides limited technical detail but does not identify a PoC, exploit tool, active exploitation, or specific remediation.

    00000967
    58.1K followersView on X

Explore more