CVE-2026-97953 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net: stmmac: corregir la comprobación de disponibilidad del descriptor TX para tráfico TSO
stmmac_tso_xmit() estima el número de descriptores TX libres necesarios por un skb TSO como:
(skb->len - proto_hdr_len) / TSO_MAX_BUFF_SIZE + 1
lo cual asume que la carga útil se divide en fragmentos del tamaño TSO_MAX_BUFF_SIZE. Esto subestima los descriptores realmente consumidos por stmmac_tso_allocator(), ya que cada fragmento se mapea individualmente y, por tanto, necesita al menos un descriptor independientemente de su tamaño. Además, se utiliza un descriptor para las cabeceras L2/L3/L4 y, cuando cambia la MSS (Maximum Segment Size), se consume otro más para el descriptor del contexto de la MSS.
Por lo tanto, en el caso de un skb TSO altamente fragmentado, la comprobación puede pasar aunque el anillo tenga muy pocos slots libres. stmmac_tso_allocator() escribe entonces más allá de los descriptores disponibles, sobrescribiendo descriptores que aún pertenecen al motor DMA y corrompiendo el anillo TX.
Se añade stmmac_tso_get_num_desc() para calcular con exactitud el número de descriptores necesarios para la cabecera, la carga útil lineal y cada fragmento, además del descriptor del contexto MSS cuando sea necesario, y se utiliza en la comprobación de disponibilidad.
VulDB is the best source for vulnerability data and more expert information about this specific topic.