No mundo do desenvolvimento de software livre, poucas coisas são tão sagradas quanto a autenticidade dos commits no kernel Linux. Afinal, estamos falando da base de sistemas operacionais que rodam em bilhões de dispositivos – desde servidores até a geladeira da sua avó. Mas e se alguém, sem querer (ou será que querendo?), tentasse inserir centenas de commits falsos atribuídos ao próprio Linus Torvalds?
Pois essa foi a tempestade perfeita que se formou quando Kees Cook, um dos principais desenvolvedores de segurança do kernel, enviou um pull request com nada menos que 330 merges falsos – todos alegando terem sido escritos e commitados por Linus.
SHA-1 forjados e commits fantasmas
Tudo começou quando Linus, em sua rotina de revisão de código, notou algo estranho no pull request de Kees. Um dos commits tinha um hash SHA-1 diferente do original, mesmo afirmando ser exatamente a mesma alteração.
Para piorar, o commit falsificado mantinha Linus como autor e committer, algo que só acontece quando alguém deliberadamente copia um commit e tenta passá-lo como legítimo.
A reação de Linus Torvalds foi imediata e previsível para quem acompanha o kernel:
“WTF, Kees? Você parece ter modificado maliciosamente sua árvore de commits. Isso é completamente inaceitável.”
E, claro, ele não parou por aí. Ordenou o bloqueio imediato da conta de Kees no kernel.org até que houvesse uma explicação convincente.
Foi o SSD, juiz!
Kees, conhecido por seu trabalho em hardening e segurança, rapidamente se defendeu alegando que um SSD defeituoso corrompeu seus repositórios locais durante uma operação de rebase. Ele ainda admitiu que tentou corrigir manualmente os commits, mas que algo deu errado no processo.
Mas Linus Torvalds, sempre cético, não comprou a história facilmente:
“Isso não é um simples erro de rebase. Foram 330 commits falsos atribuídos a mim. Alguém escreveu um script para fazer isso – não acontece por acidente.”
O verdadeiro culpado
Depois de muita investigação (e vários e-mails acalorados), descobriu-se que o problema veio de uma ferramenta chamada b4 trailers
, usada para automatizar a inclusão de tags como “Acked-by” e “Reviewed-by” em commits.
Por algum motivo, o comando reescreveu não só os trailers, mas também os metadados dos commits, incluindo informações de committer.
Konstantin Ryabitsev, mantenedor da ferramenta, assumiu a culpa:
“O b4 trailers
foi projetado para séries pequenas, não para reescrever históricos inteiros.”
No final, Kees refez todo o pull request manualmente, Konstantin prometeu corrigir o b4 trailers
, e Linus Torvalds continuou sendo o guardião implacável do kernel.
E assim, mais uma crise no mundo do código aberto foi resolvida – com gritos, desculpas e, claro, um pouco de drama.
Espalhe a palavra do Linux ao mundo: visite nossa loja e vista a camisa do pinguim!