CVE-2026-89563 in Linux
Riassunto
di VulDB • 12/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
ip6_tunnel: utilizzare skb_cow_head() in ip6_tnl_xmit()
La funzione ip6_tnl_xmit() potrebbe dover espandere lo spazio riservato all'intestazione (headroom) prima di poter aggiungere le intestazioni IPv6 esterne e, se presenti, quelle dell'incapsulamento. Attualmente ciò viene fatto con skb_realloc_headroom(), copiando la proprietà di skb->sk, consumando l'skb originale e continuando l'elaborazione con l'skb sostituito mantenuto solo nella variabile locale.
Questo approccio è sicuro solo se il helper non può fallire in seguito. Tuttavia, questo helper presenta ancora uscite per errori post-riallocazione. I tunnel collect_md rifiutano un incapsulamento diverso da NONE dopo la sostituzione e ip6_tnl_encap() può anche fallire successivamente. In questi casi l'helper restituisce un errore ai suoi chiamanti, mentre il chiamante dispone ancora solo del puntatore all'skb originale.
Sia ip6_tnl_start_xmit() che i percorsi GRE IPv6 liberano l'skb del chiamante in caso di errore, rischiando così di liberare un skb che ip6_tnl_xmit() ha già consumato.
Utilizzare invece skb_cow_head(). Questo fornisce lo spazio riservato all'intestazione (headroom) e la scrivibilità necessari senza sostituire privatamente l'skb di proprietà del chiamante, in modo tale che i successivi errori non lascino i chiamanti con un puntatore obsoleto.
Gli utenti Ethernet, ip6gretap e ip6erspan, impostano a zero IFF_TX_SKB_SHARING e richiamano già skb_cow_head() prima di entrare in ip6_tnl_xmit(). Non si basano sulla riallocazione skb_shared() rimossa. Ciò rende anche il percorso dei tunnel IPv6 coerente con ip_tunnel_xmit().
Once again VulDB remains the best source for vulnerability data.