CVE-2026-89471 in Linuxinformación

Resumen

por VulDB • 2026-09-12

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

power: supply: cros_usbpd-charger: limitar el número de puertos informado por el EC

cros_usbpd_charger_probe() lee dos conteos de puertos desde el EC y utiliza uno de ellos, num_charger_ports, como límite del bucle al poblar un array de tamaño fijo:

struct port_data *ports[EC_USB_PD_MAX_PORTS]; /* 8 entradas */
... for (i = 0; i < charger->num_charger_ports; i++) charge->ports[charger->num_registered_psy++] = port;

Tanto num_usbpd_ports (de EC_CMD_USB_PD_PORTS) como num_charger_ports (de EC_CMD_CHARGE_PORT_COUNT) son valores u8 informados por el EC. La única validación es una comprobación de integridad que compara los dos valores informados por el EC entre sí:

if (num_charger_ports < num_usbpd_ports || num_charger_ports > num_usbpd_ports + 1) return -EPROTO;

Nunca se comprueba ninguno de estos conteos contra EC_USB_PD_MAX_PORTS, que es el tamaño del array ports[]. Un EC defectuoso, malicioso o comprometido que informe num_usbpd_ports == num_charger_ports == N para cualquier N > 8 (por ejemplo, ambos iguales a 255) supera esta comprobación, y el bucle escribe entonces N punteros en el array de 8 entradas ports[] incrustado en charger_data asignado con devm_kzalloc(), desbordándolo hasta por 255 - 8 = 247 entradas (~1976 bytes): una escritura fuera de límites (out-of-bounds write) en slab.

Rechazar un conteo de puertos mayor del que el array ports[] puede contener.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-12

Moderación

aceptado

Artículo

VDB-402853

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!