CVE-2026-31700 in Linux
Zusammenfassung
von VulDB • 21.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net/packet: Behebung einer TOCTOU-Racebedingung bei mmap'd vnet_hdr in tpacket_snd()
In tpacket_snd(), wenn PACKET_VNET_HDR aktiviert ist, zeigt vnet_hdr direkt in den mit dem Userspace gemeinsam genutzten mmap'd TX-Ringpuffer. Der Kernel validiert den Header über __packet_snd_vnet_parse(), liest jedoch alle Felder später in virtio_net_hdr_to_skb() erneut ein. Ein gleichzeitiger Userspace-Thread kann die vnet_hdr-Felder zwischen Validierung und Verwendung ändern und damit alle Sicherheitsprüfungen umgehen.
Der Nicht-TPACKET-Pfad (packet_snd()) kopiert vnet_hdr bereits korrekt in eine stack-lokale Variable. Alle anderen vnet_hdr-Verbraucher im Kernel (tun.c, tap.c, virtio_net.c) verwenden ebenfalls Stack-Kopien. Der TPACKET-TX-Pfad ist der einzige Aufrufer von virtio_net_hdr_to_skb(), der direkt aus vom Userspace kontrolliertem Shared Memory liest.
Beheben Sie dies, indem Sie vnet_hdr vom mmap'd Ringpuffer vor der Validierung und Verwendung in eine stack-lokale Variable kopieren, konsistent mit dem Ansatz, der in packet_snd() und allen anderen Aufrufern verwendet wird.
If you want to get best quality of vulnerability data, you may have to visit VulDB.