UBUNTU-CVE-2026-90083: Medium severity ubuntu/linux-azure vulnerability
In the Linux kernel, the following vulnerability has been resolved: net/sched: actife: Only operate on Ethernet frames actife encapsulates/decapsulates the original Ethernet header and uses skb->dev->hardheaderlen as the length of that header. That is only correct for Ethernet devices: on a device where hardheaderlen does not match the L2 header that was actually pulled (PPP reports PPPHDRLEN while nothing is stripped on ingress), the ingress skbpush()/skbpull() use the wrong length and can hit skbunderpanic when headroom is tight. IFE is Ethernet-only by design - it builds an outer ethhdr, rewrites hsource/hdest/hproto, and calls ethtypetrans() on decode - so instead of trying to make the offsets work for arbitrary link types, simply drop packets that do not carry an Ethernet header. Checking skb->dev->type alone is not enough. We have to cater for a corner case where mirred can redirect an skb from a non-Ethernet device to an Ethernet one, and skb->dev then says nothing about the framing the skb actually has: an skb redirected from ppp0 reaches the target's ingress hook with maclen 0 and no Ethernet header at all. So at ingress also require maclen to be ETHHLEN. On egress maclen is not maintained, so the device type is all we have; a bogus redirect there yields a malformed frame rather than an out-of-bounds push, and it would be malformed with or without IFE. That corner case is not theoretical - redirecting from ppp0 into a veth that has an ife encode action on its ingress hook panics without this patch: skbuff: skbunderpanic: len:98 put:14 head:ffff88800e410000 data:ffff88800e40fff5 tail:0x57 end:0x640 dev:veth3 kernel BUG at net/core/skbuff.c:214! Call Trace: skbpush (net/core/skbuff.c:224 net/core/skbuff.c:2657) tcfifeact (net/sched/actife.c:829 net/sched/actife.c:874) tcrun (net/core/dev.c:4463) netifreceiveskb (net/core/dev.c:6463 net/core/dev.c:6522) tcfmirredtodev (net/sched/actmirred.c:248 net/sched/actmirred.c:328) tcfmirredact (net/sched/actmirred.c:489) tcrun (net/core/dev.c:4463) processbacklog (net/core/dev.c:6728) With Ethernet framing guaranteed, use ETHHLEN instead of hardheaderlen.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Restrict the Linux kernel IFE action to Ethernet frames only: drop packets that do not carry an Ethernet header and, on ingress, require skb->mac_len to equal ETH_HLEN before performing skb_push() or skb_pull().