In the Linux kernel, the following vulnerability has been resolved:
vxlan: use pskbnetworkmay_pull() for transmit path header pulls
In vxlanxmit(), arpreduce(), and vxlanmdbentryskbget(), pskbmaypull() was being called to verify the availability of network layer headers (ARP, IPv6/ND, IP/IPv6 MDB keys).
However, during transmit skb->data points to the MAC header, so skbnetworkoffset(skb) is ETHHLEN (14 bytes). Using pskbmaypull(skb, len) only checks len bytes from skb->data rather than skbnetwork_offset(skb) + len, which can leave part of the network header in non-linear frags.
Replace these remaining pskbmaypull() calls with pskbnetworkmay_pull() to properly account for the MAC header offset.