CVE-2026-89487

openvswitch: only skb_tx_error() a packet we are about to drop

HIGH
7.8
CVSS Score
Published: September 11, 2026 at 07:43 PM UTC
Updated: October 19, 2026 at 09:17 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.1%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: openvswitch: only skb_tx_error() a packet we are about to drop queue_userspace_packet() borrows the packet skb -- it only copies it into a private netlink message (user_skb) and does not own it; on return do_execute_actions() keeps forwarding it through the flow's remaining actions. Its error path nevertheless calls skb_tx_error(skb), which via skb_zcopy_clear() does skb_shinfo(skb)->flags &= ~SKBFL_ALL_ZEROCOPY, stripping SKBFL_SHARED_FRAG from that live skb (skb_tx_error()'s kerneldoc says "skb must be freed afterwards"). For a MSG_ZEROCOPY skb carrying page-cache frags, SKBFL_SHARED_FRAG is what makes esp_input() skb_cow_data() before in-place AEAD; once it is stripped a later local ESP-in-UDP delivery decrypts in place over pages the sender does not own -- an unprivileged page-cache write (the "Fragnesia" primitive). do_execute_actions() ignores output_userspace()'s return value, so any action after a failed USERSPACE upcall inherits the stripped skb. Move the skb_tx_error() to the flow-miss drop path - the "default" branch of ovs_dp_process_packet()'s switch(error), before kfree_skb(). The call has been here since commit 36d5fe6a0007 ("core, nfqueue, openvswitch: Orphan frags in skb_zerocopy and handle errors") but was harmless until esp_input() began relying on SKBFL_SHARED_FRAG to gate in-place decrypt; only then did stripping it on a still-forwarded skb become a page-cache write primitive.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

1674b4bf3eea3cac51b70778e89f8025f7cfe6953.10.513.12.403.1436d5fe6a000790f56039afe26834265db0a3ad4cc5f0c0e7525443add533495e93ba8de6feab2396
Vendor states this is fixed in 0dbc2398fca3bb33eda963849f865ddb1b3aa05e (fixed)
Vendor states this is fixed in 4477222e2916a18e273edc139c955ade6bbb7a69 (fixed)
Vendor states this is fixed in 48db11e115d1b232edc5591604adc6eda95cd545 (fixed)
Vendor states this is fixed in 4d5c460ef8754be1d43b16dbf02695b008b207d6 (fixed)
Vendor states this is fixed in 5d85eef222cfd28e73deed7402c100229e8b9e6e (fixed)
Vendor states this is fixed in 5de5d554141a15b3f1f5c978fd9f7f4fd6d0600a (fixed)
Vendor states this is fixed in 6767d70cf46f65807a6a4c4406a518e6c12e36ae (fixed)
Vendor states this is fixed in e41a59fc056f63a7a1f42788913c53cc48d744aa (fixed)
Affected range stops below 3.11, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.13, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 3.14 (unaffected)
Vendor states this is fixed in 5.10.270 (unaffected)
Vendor states this is fixed in 5.15.221 (unaffected)
Vendor states this is fixed in 6.1.188 (unaffected)
Vendor states this is fixed in 6.12.109 (unaffected)
Vendor states this is fixed in 6.18.50 (unaffected)
Vendor states this is fixed in 6.6.157 (unaffected)
Vendor states this is fixed in 7.2.4 (unaffected)
Vendor states this is fixed in 7.3 (unaffected)
Vendor states this is fixed in 7.3-rc1 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card