Material Theme removido do Marketplace do VS Code
(web.archive.org)- Usuários do VS Code relataram que
equinusocio.vsc-material-themefoi removido com a mensagem de que havia sido reportado como problemático, e que também passaram por bloqueio de reinstalação ou pop-ups repetidos - A pergunta no GitHub Q&A começou questionando a confiabilidade dos comentários no Marketplace, e a resposta selecionada levou a um link para uma extensão alternativa do t3dotgg
- O ponto central da controvérsia é que a confiança foi abalada pela combinação da mudança da extensão para closed-source, suspeitas de ofuscação de código e a postura do autor ao responder avaliações
- Alguns usuários compartilharam que, com base em commits e registros de discussões apagados, além de um post no Reddit de 6 meses antes, a possibilidade de a extensão ter sido comprometida já havia sido discutida no passado
- Surgiram relatos de que, para eliminar os pop-ups repetidos, foi necessário apagar manualmente a pasta da extensão em
.vscodeou.vscode-insiders/extensionse a entrada emextensions.json, ou até reinstalar o VS Code
Mensagem de problema exibida pelo VS Code
- Um usuário compartilhou que o VS Code exibiu a mensagem
We have uninstalled 'equinusocio.vsc-material-theme' which was reported to be problematic. - Ele disse que, sempre que fechava e reabria o VS Code, a extensão parecia ser instalada novamente, e que a mesma mensagem continuava aparecendo mesmo após a remoção manual
- Outro usuário disse que o VS Code também bloqueou a reinstalação da extensão
- Também houve a opinião de que o Settings Sync poderia ser a causa, mas o usuário afetado disse ter instalado o Code recentemente e configurado apenas o mínimo de extensões, então não tinha certeza
Resposta selecionada e extensão alternativa
- A resposta selecionada apresentou
t3dotgg.vsc-material-theme-but-i-wont-sue-youno Visual Studio Marketplace - O autor da pergunta acrescentou no corpo que o link da resposta é respaldado pelo repositório do t3dotgg
- Um usuário reagiu dizendo: “agora há uma consequência real, e hoje era um dia em que eu precisava trabalhar”
Controvérsia sobre código e licença que abalou a confiança
- Um usuário apontou como problema a recente mudança para closed-source e a ausência de aviso prévio, e afirmou que deixou de confiar depois de ver respostas grosseiras do autor em avaliações de usuários preocupados
- O mesmo usuário acrescentou que o código ofuscado parecia saída do
obfuscator.io - Outro usuário alegou que o autor da extensão está ameaçando pessoas que usam o Material Theme em seus produtos e parece ter se esquecido de que ele originalmente era Apache License 2.0
- Esse usuário anexou um link que parece ser o arquivo de licença antigo
- O mesmo comentário afirmou que o histórico de commits foi apagado para fazer parecer que a licença sempre foi outra
Registros apagados e suspeitas anteriores
- Um usuário disse que muitos commits e registros de discussões parecem ter sido apagados do repositório Git
- O mesmo usuário encontrou um post de 6 meses antes no Reddit,
has_the_material_theme_extension_been_compromised, e compartilhou que esse post levava a um link de discussion quebrado desse repositório - Outro usuário reagiu dizendo que era “o único tema de que gostava no VSCode”, e outro disse que já existem muitos forks
Métodos tentados para eliminar os pop-ups repetidos
- Um usuário de Linux disse que apagou manualmente a pasta da extensão no diretório
.vscode, mas isso não resolveu; ao reinstalar o VS Code, o pop-up desapareceu - Um usuário de Windows compartilhou que eliminou o pop-up apagando a pasta da extensão em
%USERPROFILE%/.vscode/e removendo manualmente deextensions.jsona definição dessa extensão - Um usuário do Visual Code Insiders disse que tudo voltou a funcionar depois de apagar a pasta
equinusocio.vsc-material-theme-34.7.9em.vscode-insiders/extensionse remover o objeto correspondente deextensions.json - Os comandos de exemplo incluíam o procedimento de localizar a entrada
equinusocio.vsc-material-themecomcat extensions.json | jq | grep eqe apagar a pasta da extensão comrm -rf equinusocio.vsc-material-theme-34.7.9
1 comentários
Opiniões no Hacker News
A postagem removida pode ser vista aqui: https://web.archive.org/web/20250226020241/https://github.co...
Aqui é o Isidor, da equipe do VS Code. Um membro da comunidade fez uma análise de segurança aprofundada desta extensão e relatou vários sinais de alerta que sugeriam intenção maliciosa
Pesquisadores de segurança da Microsoft confirmaram essas alegações e também encontraram código suspeito adicional
Bloqueamos esse publisher no VS Marketplace, removemos todas essas extensões e removemos esta extensão de todas as instâncias do VS Code em que ela estava em execução
Para deixar claro, esta ação não tem relação com direitos autorais nem licenças; foi exclusivamente por potencial malicioso
Em breve publicaremos um aviso mais detalhado em https://github.com/microsoft/vsmarketplace/
Como referência, o VS Marketplace continua investindo em segurança, e informações sobre confiança no runtime de extensões podem ser vistas em https://code.visualstudio.com/docs/editor/extension-runtime-...
Removê-la pelo painel de extensões da forma normal tem o mesmo comportamento
No fim, tive que apagar manualmente a pasta da extensão em
%USERPROFILE%\.vscode\extensionse também remover a entrada de%USERPROFILE%\.vscode\extensions\extensions.jsonVSCode 1.97.2, commit
e54c774e0add60467559eb0d1e229c6452cf8447Também acho que o modelo de confiança do VSCode é fundamentalmente quebrado. Ele executa código arbitrário de terceiros na máquina do cliente sem nenhum sandbox
Vocês não implantariam esse nível de segurança no Azure, então por que “executar código arbitrário de terceiros na máquina de outras pessoas” é apropriado no VSCode?
Agradeço o trabalho da equipe do VSCode e de fato uso o produto, mas a ausência de sandbox sempre me incomodou
https://marketplace.visualstudio.com/items?itemName=t3dotgg....
Pergunto porque em https://open-vsx.org não há versões posteriores à mudança desta extensão para código fechado
A conta de publisher Equinusocio, do Material Theme e do Material Theme Icons, foi sinalizada por engano e agora foi restaurada
Agimos rapidamente por segurança, mas cometemos um erro. Esses temas acionaram vários indicadores internos de detecção de malware da Microsoft e, após a investigação, chegamos à conclusão errada
Levamos muito a sério a segurança do ecossistema do VS Code e agimos rapidamente para proteger os usuários
Entendemos a frustração e a reação intensa do autor das extensões Equinusocio, e ouvimos sua voz. É algo ruim, mas às vezes acontece. Fazemos o melhor possível, mas também somos humanos, e agora esperamos resolver isso e seguir em frente
Vamos esclarecer a política sobre código ofuscado e atualizar nossos scanners e procedimentos de investigação para reduzir a chance de que isso volte a acontecer
Essas extensões são seguras e foram restauradas para uso pela comunidade do VS Code
Material Theme: https://marketplace.visualstudio.com/items?itemName=Equinuso...
Material Theme Icons: https://marketplace.visualstudio.com/items?itemName=Equinuso...
Pedimos desculpas novamente ao autor por ter sido envolvido nessa repercussão, e esperamos pelos próximos temas e extensões dele. Entramos em contato com ele para discutir medidas de compensação e agradecemos pela paciência
Scott Hanselman e equipe do Visual Studio Code Marketplace - @shanselman
Criei o “Material Theme (But I Won't Sue You)”, o fork mais proeminente dessa extensão
O mantenedor original passou completamente dos limites no ano passado. Ele tirou do ar o código-fonte, que originalmente era Apache 2, e começou a ameaçar processar pessoas que hospedassem versões alternativas ou o incluíssem em outras IDEs
Por excesso de cautela, tomei as seguintes medidas no meu fork. A equipe do VS Code está fazendo uma auditoria agora, e dei permissão total para que, se encontrarem qualquer código malicioso, retirem imediatamente do Marketplace e forcem a remoção pelos usuários
Também auditei a base de código a fundo e não encontrei nada que parecesse malicioso; removi todo o código relacionado a changelog, analytics, Open Collective e renderização de HTML
O que me preocupava um pouco era apenas o HTML do changelog e o loader do Sanity, então removi tudo completamente. Em dois PRs, removi quase todas as dependências e mais de 7.000 linhas, sendo que a maior parte era
package-lockSe mais alguém quiser auditar, o repositório está aqui: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you
O mais inacreditável ainda é que alguém possa “forçar a remoção” de qualquer coisa na minha máquina
Ainda bem que não sou usuário do VS Code. Parece que no Marketplace e nos plugins acontece todo aquele ruído corporativo típico
Curiosamente, alguém no Reddit percebeu mudanças suspeitas nessa extensão há 7 meses [1]. Em open source, ofuscação costuma ser um sinal de alerta extremo
A Microsoft precisa reconsiderar seriamente o modelo de segurança das extensões do VS Code. Do jeito que está, virou um alvo lucrativo demais para ataques
Mesmo que bloqueiem um desenvolvedor, virão 10 novas extensões maliciosas atrás
[1] https://www.reddit.com/r/vscode/comments/1eq40o2/has_the_mat...
O VS Code pode ser quase o melhor produto que a Microsoft já lançou, e uma grande razão para isso é o Marketplace de extensões
Se a Microsoft apertar mais o controle do Marketplace, é bem provável que a qualidade do VS Code piore
O raciocínio é este: se a revisão do Marketplace ficar mais rígida, a barreira de entrada sobe e o número total de extensões cai. Com menos extensões, a Microsoft ganha incentivo para colocar funcionalidades diretamente no núcleo do VS Code. Quanto mais funcionalidades a Microsoft adicionar, mais inchado o VS Code vai ficar
No fim, aumentar as auditorias de segurança do Marketplace de extensões pode levar a um VS Code mais inchado
Claro que seria bom ter controles de segurança melhores no Marketplace de extensões, mas não acredito que a Microsoft vá fazer isso de um jeito que realmente melhore o produto para os usuários
Lendo sobre o assunto, essa pessoa parece instável. Literalmente parece achar que códigos de cor hexadecimais são propriedade dela
Tecnicamente também não é grande coisa, e fez todas as pessoas competentes irem embora
Não uso o software dele, mas espero que ele supere logo esse episódio e aprenda que não foi ele quem inventou o Material
Pelo contrário, deve-se considerar que a pessoa pode ser astuta e enganosa, ou até um agente de um serviço de inteligência
Não é paranoia levantar esse tipo de suspeita sobre alguém que coloca código malicioso em ferramentas de desenvolvimento
Alguém publicou uma extensão alternativa, Material Theme (But I Won't Sue You)
https://marketplace.visualstudio.com/items?itemName=t3dotgg....
Clonei o repositório https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you e dei uma olhada; o resumo de linhas de código é este
CSS: 2 arquivos, 142 linhas, 119 linhas de código, 0 linhas de comentário, 23 linhas em brancoTypeScript: 32 arquivos, 2026 linhas, 1650 linhas de código, 243 linhas de comentário, 133 linhas em brancoHTML: 2 arquivos, 59 linhas, 49 linhas de código, 1 linha de comentário, 9 linhas em brancoTotal: 36 arquivos, 2227 linhas, 1818 linhas de código, 244 linhas de comentário, 165 linhas em branco
Dessas, 622 linhas de TypeScript são definições de cores hexadecimais por variação dentro de
scripts/generator/settings/specificO resto também parece, em geral, boilerplate, como as 599 linhas de
scripts/generator/color-set.tsEntão a pergunta continua: o que exatamente precisa ser mantido que leve mais do que alguns minutos?
Já publiquei e mantive projetos open source muito mais substanciais por anos e nunca esperei contribuição financeira
O que será que há no tema Material para deixar as pessoas assim? Houve algo parecido no lado do IntelliJ uns 5 anos atrás
Ainda assim, aquilo não era literalmente só cores
Alguém consegue apontar onde estava a parte maliciosa no repositório? Não consegui encontrar
Encontrei o código ofuscado aqui: https://web.archive.org/web/20250226020241/https://github.co...
É muito estranho esse cara ter aceitado contribuições de outras pessoas e depois transformado em código-fonte fechado. Não parece certo, embora eu não seja especialista em direitos autorais
O mantenedor pode mudar a licença, mas isso não afeta as contribuições passadas. Basicamente, tudo até a mudança de licença continua sob a licença anterior
É por isso que softwares populares ainda podem ser bifurcados quando mudam de licença
Para mudar a licença retroativamente, é preciso obter o consentimento dos contribuidores ou ter algum documento que conceda esse direito
Um acordo de licença de contribuidor (CLA) pode dar ao mantenedor o direito de relicenciar até o material passado como quiser, mas nem todo CLA faz isso
Exemplos famosos de softwares que mudaram de licença incluem Redis e Terraform. Mesmo nesses casos, o software já distribuído continua disponível sob a licença antiga, e essa licença antiga permite forks
Hoje em dia, a maioria das ferramentas já vem com temas bastante bem feitos por padrão, o que é bom
Se você quer reduzir esses riscos e minimizar as extensões/add-ons instalados, isso se torna uma opção bem realista
Claro, também é bom que o software possa ser tematizado nesse nível e, em alguns casos, melhorar usabilidade e acessibilidade
Mas as solicitações de recursos relacionadas a restrição de permissões precisam ser tratadas
Pelo visto, ele claramente não é composto apenas por códigos de cor e definições simples
Provavelmente o sistema de temas precisa ser apertado de forma mais rigorosa