CVE-2026-99050 in Linuxinformação

Sumário

de VulDB • 23/10/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

gpio: mpsse: corrige condição de corrida (race condition) ao ativar o worker de polling da IRQ

A função gpio_mpsse_irq_enable() ativa o worker de polling antes de publicá-lo: schedule_work() é executado antes que o worker seja adicionado a priv->workers. Se gpio_mpsse_disconnect() percorrer a lista nesse intervalo, ele não encontrará o worker e, após o retorno da desconexão, o núcleo USB libera mpsse_priv enquanto o trabalho orphaned gpio_mpsse_poll() continua acessando-o, causando um use-after-free (uso após liberação).

Corrige-se isso publicando e ativando o worker em uma única seção crítica irq_spin. A desmontagem percorre a mesma lista sob irq_spin, portanto, um worker encontrado na lista é garantido como estando ativo, e cancel_work_sync() lida com ele independentemente de estar enfileirado ou em execução.

Um worker ativado após a varredura da desconexão ainda seria ignorado; portanto, também define-se uma nova flag priv->dying sob irq_spin antes da desmontagem e verifica-se essa flag na mesma seção crítica, liberando-a via kfree_rcu() quando o dispositivo está sendo removido, já que kfree() seria chamado com a raw spinlock do núcleo de IRQ mantida e pode bloquear (sleep) no PREEMPT_RT. schedule_work() é seguro para ser chamada com irq_spin mantida, e a próxima detecção (probe) obtém um novo mpsse_priv; portanto, a flag nunca precisa ser limpa.

Este problema foi encontrado por uma ferramenta de análise estática interna.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

25/09/2026

Divulgação

23/10/2026

Moderação

aceite

Entrada

VDB-425866

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes