Tradução do Google da postagem do fórum em francês:
Um pesquisador de pseudo-segurança recuperou um antigo repositório Git para um plugin usado pelo fórum e o sequestrou para simplesmente exibir esta mensagem.
O repositório em questão (GitHub - discoursehosting/discourse-migratepassword: Um toque de segurança) foi inspecionado e nenhum código malicioso está presente (é simplesmente uma prova de conceito).
Este repositório na verdade mudou seu URL (agora está disponível em GitHub - communiteq/discourse-migratepassword: Suporte para hashes de senha migrados) e o usuário simplesmente recriou o repositório discoursehosting/discourse-migratepassword, que anteriormente redirecionava para communiteq/discourse-migratepassword, para colocar código não relacionado lá. Estávamos usando o URL antigo, por isso fomos afetados.
Se isso for verdade, tudo bem… Mudei o URL do plugin para communiteq e estou reconstruindo no momento. Mas tenho que investigar isso mais a fundo (como não sou programador, não posso ter 100% de certeza).
Resumo\n\nEsta é uma vulnerabilidade do Github em uma classe de exploit chamada "Repojacking".\n\nRecomendamos que todos verifiquem as URLs de seus plugins do Github e renomeiem cada instância de discoursehosting para communiteq\n\n\n## Contexto:\n\nTivemos que renomear nossa empresa de Discoursehosting para Communiteq em 2019.\nSe isso acontecer, o Github redireciona automaticamente as URLs para repositórios do github para seu novo local, até que alguém crie um repositório com o mesmo nome. Nesse momento, o novo repositório terá preferência.\n\nO Github costumava marcar tais repositórios como "aposentados" e proibia a criação de um repositório com o mesmo nome.\n\nUm exploit anterior é descrito aqui. Aparentemente, essa correção não é mais eficaz.\n\nRegistramos um relatório de abuso no Github e tentaremos derrubar este repositório com todos os meios disponíveis.
Neste momento, o plugin comprometido apenas exibe uma mensagem e deixa um arquivo inofensivo em /tmp.
Portanto, nada de ruim aconteceu - ainda. É importante alterar a URL do seu plugin antes de reconstruir.
Para mitigar o impacto potencial para usuários da instalação padrão, adicionamos código para detectar github.com/discoursehosting/ e abortar quaisquer reconstruções/atualizações.
---
ERRO: O arquivo de configuração containers/app.yml contém referências a uma organização comprometida do github: github.com/discoursehosting
Por favor, remova quaisquer referências a esta organização do seu arquivo de configuração.
Para mais informações, veja https://meta.discourse.org/t/374703/6
---
Quero pedir sinceras desculpas pela perturbação causada pelas minhas ações em relação ao repositório de plugins. Ao tentar destacar uma questão de segurança, cometi erros graves que violaram o código de conduta.
Daqui para frente, garantirei que minhas ações sigam as práticas de divulgação responsável e agradeço a oportunidade de aprender com isso.
Mais uma vez, sinto muito pela perturbação causada.
A próxima coisa não tão responsável foi não ter entrado em contato comigo ou com a CDCK privadamente quando você desistiu do handle, porque nas últimas três horas, outra pessoa poderia ter visto sua postagem e registrado.
Você basicamente deve assumir que nada é seguro, o que também não funciona bem.
Há poucos dias veio à tona que um dos desenvolvedores por trás de algumas contas NPM de pacotes ESLint Prettier teve sua conta comprometida e publicou novas versões comprometidas de alguns pacotes populares:
Esses pacotes foram então referenciados em outros pacotes, pois muitos afirmam que você deve sempre atualizar para as versões mais recentes.
Depois que vi essa thread, sugeri um recurso para introduzir a validação de assinatura de plugins/componentes de tema ao atualizá-los: Plugin and theme component signing
Isso não impediria uma chave comprometida, mas pelo menos tornaria parte da cadeia de suprimentos mais confiável. No final, ainda é possível que bibliotecas de terceiros comprometidas sejam incluídas. Dependências adicionais não são realmente visíveis.
Não tenho certeza se isso ainda funciona. Eu tinha um plugin apontando para a URL comprometida do github e a mensagem de erro durante a reconstrução apenas dizia que falhou ao puxar o repositório, com mais detalhes sobre uma versão de gem ou algo assim. (Não consigo colar as informações exatas, pois estão muito distantes no meu histórico de rolagem de todo o outro ruído durante as compilações subsequentes.)
Parece que a URL/repositório não existe mais, o que é bom (pelo menos até que outra pessoa o recrie), mas a mensagem de erro teria economizado muito tempo.