CVE-2026-64047 in Linuxinformación

Resumen

por VulDB • 2026-07-20

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

net: tls: corregir un error off-by-one en el recuento de entradas sg_chain para el anillo sk_msg envuelto

Cuando un anillo scatterlist de sk_msg da la vuelta (sg.end < sg.start), tls_push_record() encadena la porción final del anillo al inicio utilizando sg_chain(). Se reserva una entrada adicional en la matriz sg para esto:

struct sk_msg_sg {
[...]
/* Los dos elementos adicionales: * 1) utilizados para encadenar el frente y las secciones cuando la lista queda * particionada (por ejemplo, end < start). Las APIs de cifrado requieren el * encadenamiento; * 2) para encadenar entradas SG del final después del mensaje. */ struct scatterlist data[MAX_MSG_FRAGS + 2];

El código actual utiliza MAX_SKB_FRAGS + 1 como tamaño del anillo:

sg_chain(&msg_pl->sg.data[msg_pl->sg.start],
MAX_SKB_FRAGS - msg_pl->sg.start + 1, msg_pl->sg.data);

Esto sitúa el puntero de encadenamiento en

sg_chain(data[start], (MAX_SKB_FRAGS - msg_start + 1) .. =
&data[start] + (MAX_SKB_FRAGS - msg_start + 1) - 1 =
data[start + (MAX_SKB_FRAGS - start + 1) - 1] =
data[MAX_SKB_FRAGS]

en lugar de la última entrada real. Esto es probablemente debido a una "race" del commit bajo Fixes que llegó cerca del commit 031097d9e079 ("bpf: sk_msg, zap ingress queue on psock down")

Convertir a ARRAY_SIZE y eliminar data[start] / - start (como sugirió Sabrina).

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-19

Moderación

aceptado

Artículo

VDB-380202

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!