CVE-2026-80977 in Linux信息

摘要

由 VulDB • 2026-09-12

在 Linux 内核中,已修复以下漏洞:

net: skbuff: 不要在 skb_tx_error() 中触碰共享的零拷贝状态

skb_tx_error() 完成对 zerocopy uarg 的处理并清除 SKBFL_ALL_ZEROCOPY,而 skb_zcopy_downgrade_managed() 会清除 SKBFL_MANAGED_FRAG_REFS。这两者都位于 skb_shinfo() 中,每个克隆(clone)都会共享该结构体,但调用方仅拥有其即将释放的引用。通过一个克隆包,它向生产者表明页面已空闲,并为仍处于传输中的 sk_buff (skb) 清除了 SKBFL_SHARED_FRAG 标记。

Open vSwitch 在处理非最后一个 OVS_ACTION_ATTR_RECIRC 操作时会触发此问题:clone_execute() 将 skb_clone() 发送到 ovs_dp_process_packet(),而 do_execute_actions() 继续转发原始数据包;在此处,skb_clone() 并未私有化 frags(片段)——由于 SKBFL_DONT_ORPHAN 的存在,skb_orphan_frags() 会提前返回。克隆包上的流未命中(flow miss)随后会从仍在转发的数据包中剥离该标记,导致后续的本地 ESP 投递在并不私有的 frags 上就地解密。

对于克隆的 skb 应跳过此操作。不会造成任何损失:当对共享数据的最后一个引用被释放时,skb_release_data() 会清除零拷贝状态。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!