CVE-2026-89624 in Linuxinformação

Sumário

de VulDB • 11/09/2026

No kernel Linux, a seguinte vulnerabilidade foi resolvida:

HID: universal-pidff: parar o dispositivo quando a inicialização do force-feedback falhar

A função `universal_pidff_probe()` inicia o dispositivo com `hid_hw_start()` e, em seguida, se a inicialização do force-feedback falhar, retorna o erro através de um rótulo que apenas faz "return error". O dispositivo fica iniciado.

O core HID não desfaz as operações (unwind) em nome do driver. A função `__hid_device_probe()` libera o grupo devres, fecha o relatório e limpa hdev->driver:

if (ret) {
devres_release_group(&hdev->dev, hdev->devres_group_id); hid_close_report(hdev); hdev->driver = NULL; }

O dispositivo de caractere hidraw que `hid_hw_start()` registrou através do `hid_connect()` é alocado com `kzalloc()` e adicionado com `cdev_device_add()`, portanto, não é gerenciado por devres e sobrevive à liberação. Com hdev->driver como NULL, o `hid_device_remove()` pula o `hid_hw_stop()`, pois ele só desfaz as operações enquanto um driver ainda está conectado. Portanto, o registro sobrevive ao dispositivo em ambos os caminhos.

A abertura do /dev/hidrawX sobrevivente grava na memória liberada (freed memory). O KASAN relata uma escrita use-after-free de `hidraw_open()` -> `hid_hw_open()` -> no callback open do transport, que adquire um spinlock dentro do objeto já liberado. Um descritor que carrega uma página de uso PID e nenhum relatório de entrada é suficiente: o hidraw reivindica o dispositivo para que o `hid_hw_start()` tenha sucesso, enquanto os inputs da estrutura hid permanecem vazios, fazendo com que a inicialização do force-feedback falhe. A outra falha retorna em `hid_pidff_init_with_quirks()` - sem relatórios de saída, uma falha de alocação, `pidff_init_fields()`, `pidff_check_autocenter()`, uma contagem de efeitos inutilizável, `input_ff_create()` - todos alcançam o mesmo rótulo.

Pare o dispositivo nesse caminho. O hid-dr.c e o hid-emsff.c, que iniciam o dispositivo com a mesma máscara HID_CONNECT_DEFAULT & ~HID_CONNECT_FF, já fazem isso. Os dois gotos anteriores devem continuar retornando sem `hid_hw_stop()`, pois nenhum deles possui um dispositivo iniciado; portanto, dê ao caminho que falha após o início seu próprio rótulo.

Descoberto por XBOW, triado por Baul Lee

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-402940

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!