1 pontos por GN⁺ 2025-02-27 | 1 comentários | Compartilhar no WhatsApp
  • Usuários do VS Code relataram que equinusocio.vsc-material-theme foi 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 .vscode ou .vscode-insiders/extensions e a entrada em extensions.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

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 de extensions.json a 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.9 em .vscode-insiders/extensions e remover o objeto correspondente de extensions.json
  • Os comandos de exemplo incluíam o procedimento de localizar a entrada equinusocio.vsc-material-theme com cat extensions.json | jq | grep eq e apagar a pasta da extensão com rm -rf equinusocio.vsc-material-theme-34.7.9

1 comentários

 
GN⁺ 2025-02-27
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-...

    • O VSCode não está conseguindo remover esta extensão. Aparece um prompt para removê-la; ao confirmar, a janela é recarregada, mas a extensão continua lá, e o mesmo prompt de “há um problema” aparece de novo, em um loop infinito
      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\extensions e também remover a entrada de %USERPROFILE%\.vscode\extensions\extensions.json
      VSCode 1.97.2, commit e54c774e0add60467559eb0d1e229c6452cf8447
    • Gostaria que explicassem um pouco essa contradição. Se vocês dependem da comunidade para alertar sobre problemas no Marketplace, isso não significa que a Microsoft não está investindo o suficiente para auditar diretamente extensões populares?
      També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
    • Talvez também seja necessário rastrear reuploads
      https://marketplace.visualstudio.com/items?itemName=t3dotgg....
    • Gostaria de verificar se também podemos marcar esta extensão como maliciosa no Open VSX. Fico curioso se vocês sabem o intervalo de versões que continha o código malicioso
      Pergunto porque em https://open-vsx.org não há versões posteriores à mudança desta extensão para código fechado
    • Falsos positivos são realmente difíceis e, quando acontecem de verdade, causam grande impacto
      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-lock
    Se mais alguém quiser auditar, o repositório está aqui: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you

    • O simples fato de um tema poder acumular código de analytics e um monte de dependências parece absurdo. Normalmente, um tema deveria ser um pacote autocontido de cores/estilos
      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
    • Não sei por que não há um único screenshot mostrando como ele é, nem no repositório nem na página do Marketplace. Eu deixei passar algo?
  • 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...

    • Cuidado com o que você deseja
      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

    • A Pantone provavelmente gostaria de dizer umas palavras
    • Alguém o descreveu como lunatic, mas isso é uma questão de segurança. Não dá para simplesmente presumir que alguém que consegue colocar código malicioso nas IDEs de desenvolvedores do mundo inteiro é apenas instável ou louco
      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....

    • Como o autor original fala muito sobre custos de desenvolvimento/manutenção, fiquei curioso sobre o que exatamente havia para manter
      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 branco
      TypeScript: 32 arquivos, 2026 linhas, 1650 linhas de código, 243 linhas de comentário, 133 linhas em branco
      HTML: 2 arquivos, 59 linhas, 49 linhas de código, 1 linha de comentário, 9 linhas em branco
      Total: 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/specific
      O resto também parece, em geral, boilerplate, como as 599 linhas de scripts/generator/color-set.ts
      Entã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
    • Parece que quem criou a extensão alternativa é o YouTuber de tecnologia theo (https://m.youtube.com/@t3dotgg)
    • Ah, esse sou eu. Sinceramente, não me surpreende que essa pessoa tenha meio que enlouquecido
  • 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

    • Parece que qualquer coisa popular e com potencial de monetização acaba assim
  • 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

    • Em termos gerais, presume-se normalmente que as contribuições são oferecidas sob a licença vigente no momento
      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
    • Para começo de conversa, o Material era mesmo trabalho dele?
    • É parecido com muitos projetos open source mantidos principalmente por empresas, como Red Hat ou Terraform, mudando para uso não comercial
  • 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

    • É curioso que um tema possa ser um risco de segurança
      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