Linux 7.4 adiciona TAINT_FORCED_BIND para binds forçados de drivers
O Linux 7.4 vai marcar o kernel com a flag Y sempre que os arquivos sysfs de bind ou unbind de drivers forem usados, depois que o fuzzing do syzbot gerou pilhas de relatórios de bug inúteis.
4 min de leitura

O Linux 7.4 vai sinalizar qualquer kernel em que alguém tenha conectado um driver a um dispositivo manualmente. A nova flag TAINT_FORCED_BIND de Greg Kroah-Hartman, exibida como a letra Y, marca relatórios de travamento de sistemas que usaram os arquivos sysfs bind e unbind. Ferramentas de fuzzing vinham usando esses arquivos para forçar drivers em hardware inadequado. O resultado foi uma enxurrada de relatórios de bug que não importam para nenhum usuário real.
O Phoronix informou em 19 de outubro de 2026 que a mudança está no pull request do driver core para o Linux 7.4. Esse pull request foi enviado antes de a janela de merge do 7.4 abrir. O Linux 7.3 saiu em 18 de outubro, e a janela de merge do 7.4, quando novos recursos entram, abriu no dia seguinte.
O que o TAINT_FORCED_BIND faz
Um taint é um marcador que o kernel define em si mesmo quando algo incomum aconteceu. Ele aparece impresso nos relatórios de travamento. Um desenvolvedor que lê um deles então sabe que o sistema não estava em um estado normal.
O sysfs é um sistema de arquivos virtual, montado em /sys, que mostra objetos do kernel como arquivos. Cada driver tem um arquivo “bind” e um “unbind”. Escrever o ID de barramento de um dispositivo neles conecta ou desconecta esse driver manualmente, explica o Phoronix.
O patch de Kroah-Hartman define a nova flag “se os arquivos sysfs bind/unbind forem gravados em algum momento”, diz sua mensagem de apresentação. “A flag é ‘Y’, que não estava em uso.” A flag é definida antes de o próprio código de bind ou unbind do driver rodar. Os travamentos costumam acontecer dentro desse código, então o relatório de oops resultante mostra o que foi tentado. Um oops é o relatório de erro do kernel para uma falha grave.
| Detalhe | TAINT_FORCED_BIND |
|---|---|
| Letra do taint | Y |
| Definida quando | O arquivo sysfs bind ou unbind de um driver é gravado |
| Momento | Antes de o callback de bind ou unbind rodar |
| Chega em | O pull request do driver core do Linux 7.4 |
| Histórico do patch | Publicado pela primeira vez em 26 de agosto, v2 em 31 de agosto, v3 em 4 de setembro de 2026 |
| Arquivos alterados | 8, incluindo drivers/base/bus.c e kernel/panic.c |
Por que o syzbot forçou a mudança
Fuzzing significa alimentar um programa com entradas aleatórias ou inesperadas para encontrar travamentos. O syzbot é um fuzzer automatizado que roda contra o kernel. Segundo Kroah-Hartman, a interface de bind “foi abusada e recentemente sofreu um grande ‘ataque’ de fuzzing por meio de ferramentas como o syzbot”.
O syzbot começou a conectar drivers a dispositivos para os quais eles nunca foram escritos. Kroah-Hartman escreveu que isso causou “montes de erros desnecessários e patches inúteis no kernel” vindos de novos desenvolvedores. A interface foi pensada para ajudar desenvolvedores do kernel a trabalhar mais rápido em drivers. Ela também era “uma forma de depuração para usuários tentarem adicionar um novo dispositivo a um driver sem precisar recompilar o kernel”.
Nada é bloqueado. Configurações que dependem de bind e unbind “continuarão funcionando corretamente, mas agora o kernel será sinalizado”, diz a mensagem de apresentação da v3. Bugs reais de use-after-free encontrados dessa forma “ainda devem ser trabalhados”. Um bug de use-after-free é um código que acessa a memória depois de liberá-la, uma fonte clássica de falhas de segurança.
Kroah-Hartman também disse aos operadores de fuzzers o que fazer. Ferramentas sem regras escritas à mão devem “ser executadas com panic_on_taint ativado para que caiam e não continuem”. A configuração panic_on_taint interrompe o kernel assim que ele recebe um taint.
Enxurradas de relatórios de baixo valor são um problema mais amplo este ano. O Google pausou seu programa de recompensas por bugs de código aberto em 1º de outubro, após uma onda de envios gerados por IA.
Resistência de usuários de VFIO e USB
Nem todo revisor gostou da troca. Um bot de revisão, o sashiko-bot, classificou como “alta” a preocupação de que configurações legítimas passariam a ser marcadas com taint. Ele citou o VFIO, que entrega um dispositivo a uma máquina virtual, além da rede DPDK e do USB over IP. O Phoronix lista resets de hardware e a passagem de dispositivos para uma máquina virtual entre os usos legítimos.
Respondendo ao bot, Kroah-Hartman disse que esse uso “não é uma configuração ‘padrão’” e é “um abuso da api”. Armin Wolf observou que o vfio-pci com driver_override ainda precisa de bind e unbind. Ele sugeriu aplicar o taint no driver_override. Kroah-Hartman respondeu que isso deixaria de fora remoções forçadas. “É uma flag de taint sendo definida, não um panic”, escreveu.
Johan Hovold chamou o taint de “um bom meio-termo” em comparação com adicionar complexidade ou esconder os arquivos. Ele deu ao patch as tags Reviewed-by e Tested-by. Aaron Tomlin e Bradley Morgan também o revisaram.
O que isso significa para desenvolvedores
- Verifique a saída de taint depois de migrar para o Linux 7.4. Se você reconecta dispositivos pelo sysfs para passthrough com VFIO, DPDK ou USB over IP, espere a flag Y. Ela vai aparecer em /proc/sys/kernel/tainted e nos relatórios de travamento.
- Explique o Y nos relatórios de bug. Os mantenedores podem ler um relatório com taint Y como um problema de bind forçado e deixá-lo de lado. Se o seu bug é real, diga como você faz o bind do dispositivo e se ele acontece sem um bind manual.
- Operadores de fuzzers: ativem o panic_on_taint. Esse é o pedido direto de Kroah-Hartman para ferramentas que gravam em bind e unbind sem regras de exclusão. A execução para no bind forçado em vez de gerar um relatório que ninguém vai tratar.
- Autores de drivers: travamentos ainda contam. Kroah-Hartman diz que bugs reais de use-after-free alcançados por bind e unbind ainda precisam ser corrigidos. O Phoronix observa que o mesmo pull do driver core do 7.4 também traz novas adições em Rust para drivers do kernel.
- Acompanhe a versão final do 7.4. Wolf perguntou se o taint poderia valer só para barramentos que não suportam hot-plugging. Qualquer mudança desse tipo reduziria quem vê a flag Y.
Fontes
- TAINT_FORCED_BIND Sent In For Linux 7.4 To Deal With Major Fuzzing Attack - Phoronix
- [PATCH v2 0/2] driver core: add TAINT_FORCED_BIND for when userspace manually messes with devices and drivers - linux-trace-kernel mailing list
- [PATCH v3 0/2] driver core: add TAINT_FORCED_BIND for when userspace manually messes with devices and drivers - linux-modules mailing list
- Linux Kernel Introducing New Taint Due To Fuzzing Bots Yielding Impractical Bug Reports - Phoronix
Artigos relacionados

Nix e Lix corrigem falhas no daemon que permitem obter root localmente
Nix e Lix divulgaram em 13 de outubro falhas que, encadeadas, dão acesso root. As correções estão no Nix 2.35.3 e no Lix 2.95.4, entre outras versões de correção.

Archinstall 4.5 adiciona boot AArch64 e kernels RT
O Archinstall 4.5, lançado em 29 de setembro de 2026, instala máquinas ARM de 64 bits com GRUB ou Limine, traz kernels de tempo real e ativa a verificação TLS.

Um binário strip adulterado pode abrir uma porta em todo o NixOS
Investigadores construíram o ataque trusting-trust de Ken Thompson a partir do GNU strip, e não de um compilador, e abriram portas em quase todos os binários de um instalador NixOS.