CVE-2026-74701: net/openvswitch: check Ethernet header length in key_extract()

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026082235-CVE-2026-74701-282b@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

net/openvswitch: check Ethernet header length in key_extract()

When a packet arrives on an ARPHRD_NONE device (e.g. TUN),
ovs_flow_key_extract() trusts the user-provided skb->protocol field: if
it is ETH_P_TEB, the packet is classified as MAC_PROTO_ETHERNET and
key_extract() is called without ensuring the skb has ETH_HLEN (14) bytes
of linear data. key_extract() unconditionally pulls 2 * ETH_ALEN bytes
for MAC addresses and parse_ethertype() pulls 2 more, either of which
triggers a kernel BUG in __skb_pull() when the linear area is too small.

  kernel BUG at include/linux/skbuff.h:2848!
  RIP: 0010:key_extract+0xa7e/0xd90 net/openvswitch/flow.c:933
  ovs_flow_key_extract+0x419/0xa70
  ovs_vport_receive+0x222/0x390
  netdev_frame_hook+0x3e0/0x630
  tun_get_user+0x2d0c/0x38e0

Fixed by calling check_header() in key_extract() before accessing the
Ethernet header.

The Linux kernel CVE team has assigned CVE-2026-74701 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 5.10.265 with commit e85278afd4890dd190ba3c7a1b1a712b801c9fe1
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 5.15.216 with commit 81f9b09f0ea3ba9ab966dd17e9f32625a14555e9
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 6.1.183 with commit 831471718f6e19aed1a330b03b53190a90e06466
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 6.6.152 with commit d8bea341b183190ce6c055ab0e64ab78eb9a7290
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 6.12.104 with commit 0b60b55652ba772b173dddc63f3851e1d2dd5927
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 6.18.45 with commit a8139285c8925efe59af28a9169bb2fda91bff15
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 7.1.9 with commit 9b8cfbb58b85bfa7a78fac47fdc77396cd01f699
	Issue introduced in 4.10 with commit 217ac77a3c2524d999730b2a80b61fcc2d0f734a and fixed in 7.2 with commit cf6f8b29befb92173659bcef6a441d274947bfae

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-74701
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/openvswitch/flow.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/e85278afd4890dd190ba3c7a1b1a712b801c9fe1
	https://git.kernel.org/stable/c/81f9b09f0ea3ba9ab966dd17e9f32625a14555e9
	https://git.kernel.org/stable/c/831471718f6e19aed1a330b03b53190a90e06466
	https://git.kernel.org/stable/c/d8bea341b183190ce6c055ab0e64ab78eb9a7290
	https://git.kernel.org/stable/c/0b60b55652ba772b173dddc63f3851e1d2dd5927
	https://git.kernel.org/stable/c/a8139285c8925efe59af28a9169bb2fda91bff15
	https://git.kernel.org/stable/c/9b8cfbb58b85bfa7a78fac47fdc77396cd01f699
	https://git.kernel.org/stable/c/cf6f8b29befb92173659bcef6a441d274947bfae
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.