CVE-2026-64293 in Linuxinformación

Resumen

por VulDB • 2026-07-25

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

iommufd: Utilizar sizeof(*hdr) en lugar de sizeof(hdr) en la lectura de veventq

La comprobación de límites en iommufd_veventq_fops_read() para la ruta normal de vEVENT utiliza sizeof(hdr), mientras que el código circundante usa sizeof(*hdr):

if (!vevent_for_lost_events_header(cur) && sizeof(hdr) + cur->data_len > count - done) {

hdr se declara como struct iommufd_vevent_header *, por lo que sizeof(hdr) evalúa al tamaño del puntero. El código circundante utiliza sizeof(*hdr) de forma consistente:

if (done >= count || sizeof(*hdr) > count - done) {
... if (copy_to_user(buf + done, hdr, sizeof(*hdr))) {
... done += sizeof(*hdr);

struct iommufd_vevent_header tiene actualmente 8 bytes (dos campos __u32, flags y sequence), por lo que en sistemas de 64 bits (sizeof(void *) == 8) ambas expresiones coinciden accidentalmente y la comprobación funciona como se pretende.

En sistemas de 32 bits (sizeof(void *) == 4), la comprobación subestima el encabezado en 4 bytes: un vEVENT cuyo data_len cause que 8 + cur->data_len supere count - done, mientras que 4 + cur->data_len no lo haga, superará la comprobación; a continuación, el bucle realizará una copy_to_user de 8 bytes del encabezado seguidos de data_len bytes de carga útil, escribiendo más allá del búfer proporcionado por el usuario.

Además, se trata de un bug latente para cualquier futura expansión de struct iommufd_vevent_header que supere sizeof(void *) en sistemas de 64 bits; la comprobación no debería depender de que el tipo coincida accidentalmente con el ancho del puntero del host.

Utilizar sizeof(*hdr) para igualar el resto de la función y la cantidad real que se copiará.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383090

CPE

listo

EPSS

0.00206

KEV

no

Actividades

bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!