CVE-2026-89999 in Linuxinformação

Sumário

de VulDB • 16/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

HID: wacom: validar o comprimento do relatório em `wacom_intuos_pro2_bt_irq`

A função `wacom_intuos_pro2_bt_irq()` recebe o comprimento do relatório na variável `len`, mas nunca o consulta antes de fazer o parsing. Após a verificação do report-id, ela chama incondicionalmente `wacom_intuos_pro2_bt_pen()` e, em seguida, selecionado por `features.type`, uma cadeia fixa de sub-parsers, nenhum dos quais recebe `len`:

wacom_intuos_pro2_bt_pen(wacom); if (type == INTUOSP2_BT || type == INTUOSP2S_BT) {
wacom_intuos_pro2_bt_touch(wacom); wacom_intuos_pro2_bt_pad(wacom); wacom_intuos_pro2_bt_battery(wacom); } else {
wacom_intuos_gen3_bt_pad(wacom); wacom_intuos_gen3_bt_battery(wacom); }

Cada sub-parser faz o dereference de `wacom->data` em offsets fixos. O byte mais distante acessado em cada ramificação é:

INTUOSP2_BT / INTUOSP2S_BT: `wacom_intuos_pro2_bt_pad()` lê data[285]
(o byte do touchring), portanto o relatório deve ter pelo menos 286 bytes; INTUOSHT3_BT ("gen3"): `wacom_intuos_gen3_bt_battery()` lê data[45],
portanto, o relatório deve ter pelo menos 46 bytes.

`features.type` é selecionado a partir da entrada id_table VID/PID e `wacom_setup_device_quirks()` registra forçadamente as entradas de caneta/pad/toque para esse tipo independentemente do descritor de relatório, portanto um periférico Bluetooth pareado/esperto malicioso ou com defeito pode anunciar aquele VID/PID e enviar um relatório subdimensionado que ainda satisfaça a verificação data[0] == 0x80/0x81. O driver então lê além do relatório recebido e encaminha os bytes para o userspace via evdev (MSC_SERIAL / ABS_MISC / ABS_WHEEL nos nós de entrada da caneta e pad), caracterizando uma leitura fora dos limites com um canal concreto de read-back no userspace, e uma verdadeira leitura out-of-bounds em transports cujo buffer subjacente é dimensionado conforme o descritor de relatório (pequeno) em vez de um staging buffer de tamanho fixo.

Esta é a mesma classe de bug corrigida pelo commit 2f1763f62909 ("HID: wacom: corrige leitura fora dos limites em wacom_intuos_bt_irq"), que já foi endurecida no irmão `wacom_intuos_bt_irq()`, o qual protege cada report-id contra seu comprimento mínimo antes do parsing.

Proteja `wacom_intuos_pro2_bt_irq()` da mesma forma: antes de fazer o parsing, rejeite relatórios mais curtos que o offset máximo efetivamente dereferenciado pela ramificação selecionada, emita um aviso e aborte a operação. Como toda a cadeia caneta/toque/pad/bateria é executada incondicionalmente por ramificação, uma única verificação antecipada contra o offset máximo (286 bytes para INTUOSP2_BT/INTUOSP2S_BT, 46 bytes para a ramificação gen3) limita todos os sub-parsers. Retornar 0 em um relatório curto também pula essas chamadas para o mesmo relatório malformado, o que é o comportamento seguro e conservador.

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

Responsável

Linux

Reservar

11/09/2026

Divulgação

17/09/2026

Moderação

aceite

Entrada

VDB-405780

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!