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.
Published: 2026-09-11
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Kernel Page-cache Write
Action: Patch
AI Analysis

Impact

A bug in the Linux kernel’s Open vSwitch (OVS) zero‑copy packet processing path causes skb_tx_error() to be invoked on a packet that is about to be dropped, but that packet is still forwarded through additional flow actions. The error path clears the SKBFL_SHARED_FRAG flag on the skb, which ESP‑in‑UDP decryption relies on to gate in‑place authenticated encryption on page‑cache fragments. When the flag is removed, the decrypt routine overwrites pages that it does not own, providing an attacker with an unprivileged page‑cache write primitive.

Affected Systems

Affected hosts are Linux kernel installations that include the OVS zero‑copy code path before the fix that moves skb_tx_error() into the drop branch. The vulnerability is present regardless of the kernel release series; any kernel containing OVS with zero‑copy enabled before the specific patch is at risk. Identification requires checking for the presence of the OVS module or the commit that introduces the bug.

Risk and Exploitability

The CVSS score of 7.1 indicates a high‑severity flaw. The EPSS score is less than 1 % and the vulnerability is not listed in CISA’s KEV catalog, suggesting low active exploitation risk at this time. However, the flaw gives an attacker a reliable page‑cache write capability if they can send crafted traffic through an affected OVS bridge, which could lead to privilege escalation or data tampering. The attack vector is likely remote, originating from network traffic that traverses the OVS data path.

Generated by OpenCVE AI on September 13, 2026 at 03:02 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a release that contains the commit that moves skb_tx_error() to the drop path, or apply a vendor backport that fixes the issue.
  • If the system does not require OVS or zero‑copy functionality, compile the kernel with OVS support disabled or unload the OVS module to remove the vulnerable code path.
  • Restrict network traffic that reaches OVS bridges by applying firewall rules or network segmentation so that only trusted traffic can traverse the vulnerable flow actions, limiting exposure while a patch can be applied.

Generated by OpenCVE AI on September 13, 2026 at 03:02 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 13 Sep 2026 03:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 12 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-367
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H'}

threat_severity

Moderate


Sat, 12 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
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.
Title openvswitch: only skb_tx_error() a packet we are about to drop
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-11T19:43:40.776Z

Reserved: 2026-09-11T19:38:34.713Z

Link: CVE-2026-89487

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:30.413

Modified: 2026-09-11T20:19:30.413

Link: CVE-2026-89487

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:43:40Z

Links: CVE-2026-89487 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T03:15:13Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition