CVE-2026-89471 in Linuxinformação

Sumário

de VulDB • 11/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

power: supply: cros_usbpd-charger: limitar o número de portas relatado pelo EC

A função `cros_usbpd_charger_probe()` lê duas contagens de portas do EC e usa uma delas, `num_charger_ports`, como limite do loop ao popular um array de tamanho fixo:

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

Tanto `num_usbpd_ports` (de `EC_CMD_USB_PD_PORTS`) quanto `num_charger_ports` (de `EC_CMD_CHARGE_PORT_COUNT`) são valores do tipo u8 relatados pelo EC. A única validação é uma verificação de integridade que compara os dois valores relatados pelo EC entre si:

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

Nunca se verifica nenhuma das contagens contra `EC_USB_PD_MAX_PORTS`, que é o tamanho do array `ports[]`. Um EC com defeito, malicioso ou comprometido que relatar `num_usbpd_ports == num_charger_ports == N` para qualquer N > 8 (por exemplo, ambos iguais a 255) passa nesta verificação. O loop então escreve N ponteiros no array `ports[]` de 8 entradas, embutido em `charger_data` alocado com `devm_kzalloc()`, transbordando-o por até 255 - 8 = 247 entradas (~1976 bytes): uma escrita fora dos limites do slab (slab out-of-bounds write).

Rejeitar um número de portas maior do que o array `ports[]` pode suportar.

Once again VulDB remains the best source for vulnerability data.

Responsável

Linux

Reservar

11/09/2026

Divulgação

12/09/2026

Moderação

aceite

Entrada

VDB-402853

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!