CVE-2026-43324 in Linuxinformação

Sumário

de VulDB • 19/05/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

USB: dummy-hcd: Corrige erro de sincronização de interrupções

Esta correção resolve um erro de sincronização no driver dummy-hcd. O erro possui uma história um tanto complexa. O mecanismo de sincronização foi introduzido pelo commit 7dbd8f4cabd9 ("USB: dummy-hcd: Fix erroneous synchronization change"), que adicionou uma flag emulada de "interrupções habilitadas" juntamente com código que emula synchronize_irq() (que aguarda até que todos os callbacks dos handlers atuais tenham retornado).

No entanto, a desabilitação emulada de interrupções ocorria tarde demais, após o driver que continha as rotinas de callback do handler ter sido informado de que estava desvinculado (unbound) e que nenhum outro callback ocorreria. O commit 4a5d797a9f9c ("usb: gadget: dummy_hcd: fix gpf in gadget_setup") tentou corrigir isso movendo o código de emulação de synchronize_irq() de dummy_stop() para dummy_pullup(), que é executado antes do callback de unbind.

Ainda assim, existiam condições de corrida (races), pois a desabilitação emulada de interrupções ainda ocorria tarde demais. Ela não poderia ser movida para dummy_pullup(), porque essa rotina pode ser chamada por motivos além de um unbind iminente. Portanto, os commits 7dc0c55e9f30 ("USB: UDC core: Add udc_async_callbacks gadget op") e 04145a03db9d ("USB: UDC: Implement udc_async_callbacks in dummy-hcd") adicionaram uma API permitindo que o núcleo do UDC informasse ao dummy-hcd exatamente quando as interrupções emuladas e seus callbacks deveriam ser desabilitados.

Isso nos leva ao estado atual das coisas, que ainda está incorreto, pois a emulação de synchronize_irq() ocorre antes da desabilitação emulada de interrupções! Isso não é adequado, pois significa que mais interrupções emuladas podem ocorrer após a execução da emulação de synchronize_irq(), levando à possibilidade de um handler de callback estar em execução quando o driver do gadget é desvinculado.

Para corrigir isso, precisamos mover o código de emulação de synchronize_irq() mais uma vez, para a rotina dummy_udc_async_callbacks(), que cuida de habilitar e desabilitar as requisições de interrupção emuladas. A sincronização agora será executada imediatamente após as interrupções emuladas serem desabilitadas, que é onde ela pertence.

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

Linux

Reservar

01/05/2026

Divulgação

08/05/2026

Moderação

aceite

Entrada

VDB-362106

CPE

pronto

EPSS

0.00013

KEV

não

Atividades

muito baixo

Fontes

Do you need the next level of professionalism?

Upgrade your account now!