CVE-2026-64251 in Linuxinformación

Resumen

por VulDB • 2026-07-24

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

pwrseq: core: corregir un use-after-free en pwrseq_debugfs_seq_next()

La función pwrseq_debugfs_seq_next() declara 'next' con __free(put_device), lo que provoca que put_device() sea llamada sobre el puntero devuelto cuando la variable sale del ámbito. Esto da lugar a un use-after-free, ya que el marco de trabajo seq_file recibe un puntero cuya referencia ya ha sido liberada.

Simplemente eliminar __free(put_device) corregiría el UAF (use-after-free), pero provocaría una fuga de la referencia adquirida por bus_find_next_device(), dado que stop() solo llama a up_read(&pwrseq_sem) y nunca libera la referencia del dispositivo.

Se corrige esto haciendo consistente el conteo de referencias en todas las callbacks seq_file, siguiendo el patrón estándar utilizado por PCI y SCSI:

- start(): usar get_device() para que devuelva un puntero con una referencia válida. - next(): llamar explícitamente a put_device(curr) para liberar la referencia del dispositivo anterior (no es necesario comprobar NULL; el marco de trabajo seq_file solo llama a next() mientras la devolución previa no sea NULL). - stop(): llamar a put_device(data) para liberar la referencia del último dispositivo iterado, con una protección contra valores NULL ya que stop() puede ser llamada con un puntero NULL cuando start() devolvió NULL o next() alcanzó el final de la secuencia.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-24

Moderación

aceptado

Artículo

VDB-382996

CPE

listo

EPSS

0.00117

KEV

no

Actividades

muy bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!