-

CVE-2026-90078

net/sched: act_skbmod: fix length calculations and avoid invalid header warnings

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

net/sched: act_skbmod: fix length calculations and avoid invalid header warnings

syzbot reported a warning in skb_network_header_len() triggered
by tcf_skbmod_act():

  !skb_transport_header_was_set(skb)
  WARNING: CPU: 0 PID: 14949 at include/linux/skbuff.h:3243 skb_network_header_len include/linux/skbuff.h:3243 [inline]
  WARNING: CPU: 0 PID: 14949 at net/sched/act_skbmod.c:55 tcf_skbmod_act+0xfe8/0x1810 net/sched/act_skbmod.c:55

There are a few issues in tcf_skbmod_act():

1. Calling skb_network_header_len() assumes skb->transport_header is set,
   which is not guaranteed when tcf_skbmod_act() runs at TC ingress.
2. Unconditionally calling skb_mac_header_len() at the beginning of
   tcf_skbmod_act() triggers a warning on L3 devices (e.g. TUN) where the
   MAC header is unset, evaluating to an underflowed garbage length.
3. On TC ingress, skb->data points to the network header. Adding the MAC
   header length to the IP header length causes skb_ensure_writable() to
   request more bytes than the actual IP packet length, dropping valid
   short packets (e.g. 28-byte UDP/IPv4 packets).

Fix these by:
- Using skb_network_offset(skb) + sizeof(struct iphdr/ipv6hdr) for
  SKBMOD_F_ECN so that the required length is correctly calculated on
  both ingress (offset == 0) and egress (offset == mac_len).
- Setting max_edit_len to ETH_HLEN for Ethernet header modifications
  after validating ARPHRD_ETHER.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < 985a37781ade19061400100c2ba0f43979dd4d63
Status affected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < d896843d8d925f0adbba319020595cfb1a7bcd57
Status affected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < 0675cff3c2924eb9b80d9dd250cf56a1140af157
Status affected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < e8a2027b7e686784a69b2dfcee841d779919f313
Status affected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < 1719865b20b22c88d2a55e922eff5ca31b0841f6
Status affected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < 62126464f3a6159c0a3dd89e196ba65bfeb0afc6
Status affected
Version 56af5e749f20c3a540310c207dcc373f4f09156e
Version < 81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.15
Status affected
Version 0
Version < 5.15
Status unaffected
Version <= 5.15.*
Version 5.15.221
Status unaffected
Version <= 6.1.*
Version 6.1.188
Status unaffected
Version <= 6.6.*
Version 6.6.157
Status unaffected
Version <= 6.12.*
Version 6.12.110
Status unaffected
Version <= 6.18.*
Version 6.18.52
Status unaffected
Version <= 7.2.*
Version 7.2.6
Status unaffected
Version <= *
Version 7.3-rc1
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.21% 0.11
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/985a37781ade19061400100c2ba0f43979dd4d63
https://git.kernel.org/stable/c/d896843d8d925f0adbba319020595cfb1a7bcd57
https://git.kernel.org/stable/c/0675cff3c2924eb9b80d9dd250cf56a1140af157
https://git.kernel.org/stable/c/e8a2027b7e686784a69b2dfcee841d779919f313
https://git.kernel.org/stable/c/1719865b20b22c88d2a55e922eff5ca31b0841f6
https://git.kernel.org/stable/c/62126464f3a6159c0a3dd89e196ba65bfeb0afc6
https://git.kernel.org/stable/c/81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb