1P by GN⁺ | ★ favorite | 댓글 1개
  • VS Code 사용자들은 equinusocio.vsc-material-themeproblematic으로 보고됨 메시지와 함께 제거되고, 재설치 차단이나 반복 팝업까지 겪었다고 공유함
  • GitHub Q&A의 질문은 마켓플레이스 댓글의 신뢰성을 묻는 데서 출발했고, 선택된 답변은 t3dotgg의 대체 확장 링크로 이어짐
  • 논란의 핵심은 확장의 closed-source 전환, 코드 난독화 의혹, 작성자의 리뷰 대응 태도가 겹치며 신뢰가 흔들린 점임
  • 일부 사용자는 삭제된 커밋·토론 기록과 6개월 전 Reddit 글을 근거로 과거에도 compromised 여부가 논의됐다고 공유함
  • 반복 팝업을 없애려면 .vscode 또는 .vscode-insiders/extensions의 확장 폴더와 extensions.json 항목을 직접 지우거나, VS Code 재설치까지 필요했다는 사례가 나옴

VS Code가 표시한 문제 메시지

  • 한 사용자는 VS Code가 We have uninstalled 'equinusocio.vsc-material-theme' which was reported to be problematic. 메시지를 표시했다고 공유함
  • VS Code를 닫았다가 다시 열 때마다 확장이 다시 설치되는 것처럼 보였고, 수동 제거 후에도 같은 메시지가 계속 떴다고 함
  • 다른 사용자는 VS Code가 확장 재설치도 막았다고 말함
  • Settings Sync가 원인일 수 있다는 의견도 있었지만, 문제를 겪은 사용자는 최근 Code를 새로 설치했고 최소 확장만 설정했다며 확신하지 못함

선택된 답변과 대체 확장

신뢰를 흔든 코드와 라이선스 논란

  • 한 사용자는 최근 closed-source 전환과 사전 경고 부재를 문제로 들었고, 우려하는 사용자들에게 작성자가 무례하게 답한 리뷰 응답을 보고 더 이상 신뢰하지 않는다고 밝힘
  • 같은 사용자는 난독화된 코드가 obfuscator.io 출력처럼 보인다고 덧붙임
  • 다른 사용자는 확장 작성자가 제품에서 Material Theme을 쓰는 사람들을 위협하고 있으며, 원래 Apache License 2.0이었다는 점을 잊은 것 같다고 주장함
    • 이 사용자는 과거 라이선스 파일로 보이는 링크를 첨부함
    • 같은 댓글은 커밋 기록을 지워 처음부터 다른 라이선스였던 것처럼 보이게 했다고 주장함

삭제된 기록과 과거 의심

  • 한 사용자는 Git 저장소에서 많은 커밋과 토론 기록이 삭제된 것 같다고 말함
  • 같은 사용자는 6개월 전 Reddit의 has_the_material_theme_extension_been_compromised 글을 찾았고, 해당 글이 이 저장소의 깨진 discussion 링크로 이어진다고 공유함
  • 다른 사용자는 “VSCode에서 좋아하던 유일한 테마”였다고 반응했고, 또 다른 사용자는 이미 많은 포크가 있다고 말함

반복 팝업을 없애기 위해 시도한 방법

  • Linux 사용자는 .vscode 디렉터리에서 확장 폴더를 직접 삭제했지만 해결되지 않았고, VS Code를 재설치하자 팝업이 사라졌다고 함
  • Windows 사용자는 %USERPROFILE%/.vscode/ 아래에서 확장 폴더를 지우고 extensions.json에서 해당 확장 정의를 수동 삭제해 팝업을 없앴다고 공유함
  • Visual Code Insiders 사용자는 .vscode-insiders/extensions에서 equinusocio.vsc-material-theme-34.7.9 폴더를 삭제하고 extensions.json의 해당 객체를 제거한 뒤 다시 동작했다고 말함
  • 예시 명령에는 cat extensions.json | jq | grep eqequinusocio.vsc-material-theme 항목을 찾고, rm -rf equinusocio.vsc-material-theme-34.7.9로 확장 폴더를 삭제하는 절차가 포함됨

댓글과 토론

Hacker News 의견들
  • 삭제된 게시글은 여기서 볼 수 있음: https://web.archive.org/web/20250226020241/https://github.co...

  • VS Code 팀의 Isidor임. 커뮤니티 멤버가 이 확장에 대해 심층 보안 분석을 했고, 악의적 의도를 시사하는 여러 위험 신호를 찾아 신고함
    Microsoft 보안 연구원들이 그 주장을 확인했고 추가로 의심스러운 코드도 발견함
    이 퍼블리셔를 VS Marketplace에서 차단했고, 해당 확장들을 모두 제거했으며, 이 확장이 실행 중인 모든 VS Code 인스턴스에서 제거함
    분명히 하자면 이번 조치는 저작권이나 라이선스와 무관하고, 오직 잠재적 악의성 때문임
    https://github.com/microsoft/vsmarketplace/에 더 자세한 공지를 올릴 예정임
    참고로 VS Marketplace는 보안에 계속 투자하고 있으며, 확장 런타임 신뢰에 관한 내용은 https://code.visualstudio.com/docs/editor/extension-runtime-...에서 볼 수 있음

    • VSCode가 이 확장을 제거하지 못하고 있음. 제거하라는 프롬프트가 떠서 확인하면 창이 새로고침되지만 확장은 그대로 남아 있고, 같은 “문제 있음” 프롬프트가 다시 떠서 무한 반복
      확장 패널에서 일반적인 방식으로 제거해도 같은 동작임
      결국 %USERPROFILE%\.vscode\extensions에서 확장 폴더를 직접 지우고, %USERPROFILE%\.vscode\extensions\extensions.json에서도 항목을 삭제해야 했음
      VSCode 1.97.2, 커밋 e54c774e0add60467559eb0d1e229c6452cf8447
    • 이 모순을 좀 설명해 줬으면 함. 커뮤니티가 Marketplace 문제를 알려주는 데 의존한다면, Microsoft가 인기 확장을 직접 감사하는 데 충분히 투자하고 있지 않은 것 아닌가?
      VSCode의 신뢰 모델도 근본적으로 깨져 있다고 봄. 클라이언트 머신에서 임의의 제3자 코드를 어떤 샌드박스도 없이 실행하고 있음
      Azure에는 이런 수준의 보안을 배포하지 않을 텐데, 왜 VSCode에서는 “남의 머신에서 임의의 제3자 코드 실행”이 적절한가?
      VSCode 팀의 작업은 고맙고 실제로 쓰고 있지만, 샌드박스 부재는 늘 불편했음
    • 재업로드도 추적해야 할 수 있음
      https://marketplace.visualstudio.com/items?itemName=t3dotgg....
    • Open VSX 쪽에서도 이 확장을 악성으로 표시할 수 있는지 검토하고 싶음. 악성 코드가 포함된 버전 범위를 알고 있는지 궁금함
      https://open-vsx.org에는 이 확장이 비공개 소스로 전환된 이후의 버전이 올라와 있지 않아서 물어봄
    • 오탐은 정말 힘들고, 실제로 벌어지면 타격이 큼
      Material Theme와 Material Theme Icons의 퍼블리셔 계정 Equinusocio가 실수로 플래그 처리됐고, 이제 복구됨
      안전을 위해 빠르게 움직였지만 실수했음. 이 테마들이 Microsoft 내부의 여러 악성코드 탐지 지표를触발했고, 조사 결과 잘못된 결론에 도달했음
      VS Code 생태계의 보안을 매우 중요하게 여기며 사용자를 보호하려고 신속히 행동했음
      Equinusocio 확장 작성자의 좌절과 격한 반응을 이해하며, 그 목소리를 들었음. 나쁜 일이지만 때로 이런 일이 생김. 최선을 다하지만 우리도 사람이고, 이제 이 일을 정리하고 나아가길 바람
      난독화 코드에 대한 정책을 명확히 하고, 스캐너와 조사 절차를 업데이트해 이런 일이 다시 일어날 가능성을 줄이겠음
      이 확장들은 안전하며 VS Code 커뮤니티가 사용할 수 있도록 복구됐음
      Material Theme: https://marketplace.visualstudio.com/items?itemName=Equinuso...
      Material Theme Icons: https://marketplace.visualstudio.com/items?itemName=Equinuso...
      작성자가 이 여파에 휘말린 점을 다시 사과하며, 앞으로의 테마와 확장도 기대함. 그와 연락해 보상 조치를 논의했고 인내해 준 데 감사했음
      Scott Hanselman 및 Visual Studio Code Marketplace 팀 - @shanselman
  • 이 확장의 가장 두드러진 포크인 “Material Theme (But I Won't Sue You)”를 만들었음
    원 관리자자는 작년에 완전히 선을 넘었음. 원래 Apache 2였던 소스를 오프라인으로 내리고, 대체 버전을 호스팅하거나 다른 IDE에 포함하는 사람들을 고소하겠다고 위협하기 시작했음
    충분히 조심하는 차원에서 내 포크에는 다음 조치를 했음. VS Code 팀이 지금 감사 중이고, 악성 코드가 하나라도 발견되면 Marketplace에서 즉시 내리고 사용자에게 강제 제거해도 된다고 전적으로 허락했음
    코드베이스도 철저히 감사했는데 악성으로 보이는 부분은 없었고, 변경 로그·분석·Open Collective·HTML 렌더링 관련 코드를 모두 제거했음
    약간 걱정스러웠던 건 변경 로그용 HTML과 Sanity 로더뿐이라 완전히 들어냈음. 두 PR로 거의 모든 의존성과 7,000줄 이상을 제거했는데 대부분은 package-lock
    다른 사람이 감사하고 싶다면 저장소는 여기 있음: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you

    • 테마가 분석 코드와 많은 의존성까지 쌓을 수 있다는 것 자체가 터무니없어 보임. 테마는 보통 자체 완결적인 색상/스타일 묶음이어야 함
      더 어이없는 건 누군가 내 머신에서 무엇이든 “강제 제거”할 수 있다는 점임
      VS Code 사용자가 아니라서 다행임. Marketplace와 플러그인에서 전형적인 기업식 잡음이 다 벌어지는 것 같음
    • 저장소나 Marketplace 페이지 어디에도 어떻게 생겼는지 보여주는 스크린샷이 하나도 없는 건 왜인지 모르겠음. 내가 놓친 건가?
  • 흥미롭게도 Reddit의 누군가가 7개월 전에 이 확장의 의심스러운 변경을 알아차렸음 [1]. 오픈소스에서 난독화는 보통 극단적인 위험 신호임
    Microsoft는 VS Code 확장 보안 모델을 진지하게 재고해야 함. 지금 방식으로는 공격 대상이 되기에 너무 수익성이 커졌음
    개발자 하나를 차단해도 새 악성 확장 10개가 따라올 것임
    [1] https://www.reddit.com/r/vscode/comments/1eq40o2/has_the_mat...

    • 원하는 게 무엇인지 조심해야 함
      VS Code는 Microsoft가 낸 제품 중 거의 최고일 수 있고, 그 큰 이유는 확장 Marketplace
      Microsoft가 Marketplace를 더 강하게 단속하면 VS Code 품질이 나빠질 가능성이 큼
      근거는 이렇다. Marketplace 심사가 강해지면 진입 장벽이 올라가 전체 확장 수가 줄어듦. 확장이 줄면 Microsoft가 기능을 VS Code 본체에 직접 넣을 유인이 생김. Microsoft가 기능을 더 넣을수록 VS Code는 더 비대해질 것임
      결국 확장 Marketplace의 보안 감사를 늘리면 더 비대한 VS Code로 이어질 수 있음
      물론 확장 Marketplace에 더 나은 보안 제어가 있으면 좋겠지만, Microsoft가 실제 사용자에게 제품을 개선하는 방식으로 해낼 거라고는 믿지 않음
  • 관련 내용을 읽어보니 이 사람은 불안정해 보임. 문자 그대로 16진수 색상 코드를 자기 소유라고 생각하는 듯함
    기술적으로도 별로고, 잘하는 사람들을 다 떠나게 만들었음
    그의 소프트웨어는 쓰지 않지만, 이 에피소드에서 빨리 벗어나고 자신이 Material을 발명한 게 아니라는 걸 배우길 바람

    • Pantone이 한마디 하고 싶어 할 듯함
    • 누군가는 그를 lunatic이라고 표현했지만, 이건 보안 이슈임. 전 세계 개발자들의 IDE에 악성 코드를 성공적으로 넣는 사람을 불안정하거나 미쳤다고만 가정하면 안 됨
      오히려 교묘하고 기만적이거나, 정보기관의 앞잡이일 수도 있다고 봐야 함
      개발자 도구에 악성 코드를 넣는 사람에 대해 그런 의심을 하는 건 편집증이 아님
  • 누군가 대체 확장인 Material Theme (But I Won't Sue You)를 올렸음
    https://marketplace.visualstudio.com/items?itemName=t3dotgg....

    • 원 작성자가 개발/유지보수 비용에 대해 많이 말하길래, 도대체 무엇을 유지보수해야 하는지 궁금해졌음
      https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you 저장소를 클론해서 봤는데, 코드 줄 수 요약은 이렇다
      CSS: 2파일, 142줄, 코드 119줄, 주석 0줄, 빈 줄 23줄
      TypeScript: 32파일, 2026줄, 코드 1650줄, 주석 243줄, 빈 줄 133줄
      HTML: 2파일, 59줄, 코드 49줄, 주석 1줄, 빈 줄 9줄
      전체 36파일, 2227줄, 코드 1818줄, 주석 244줄, 빈 줄 165줄
      이 중 TypeScript 622줄은 scripts/generator/settings/specific 안의 변형별 16진수 색상 정의
      나머지도 대체로 상용구처럼 보이고, 예를 들면 scripts/generator/color-set.ts의 599줄이 그렇다
      그래서 여전히 질문은 남음. 대체 무엇을 유지보수해야 하길래 몇 분 이상이 필요한가?
      훨씬 더 실질적인 오픈소스 프로젝트들을 수년간 배포하고 유지했지만 금전적 기여를 기대한 적은 없었음
    • 대체 확장 만든 사람은 기술 YouTuber theo인 듯함 (https://m.youtube.com/@t3dotgg)
    • 오, 그거 나임. 솔직히 이 사람이 약간 미쳐버린 건 놀랍지 않음
  • Material 테마에는 대체 뭐가 있어서 사람들을 이렇게 만드는 걸까? 5년쯤 전 IntelliJ 쪽에서도 비슷한 일이 있었음
    그래도 그건 문자 그대로 색상만 있는 건 아니었음

    • 인기 있고 수익화 가능성이 있는 것이라면 뭐든 그렇게 되는 듯함
  • 저장소에서 악성 부분이 어디였는지 짚어줄 수 있는 사람이 있나? 못 찾겠음
    난독화된 코드는 여기서 찾았음: https://web.archive.org/web/20250226020241/https://github.co...

  • 이 사람이 다른 사람들의 기여를 받은 뒤 비공개 소스로 바꾼 건 정말 이상함. 맞는 일 같지는 않은데, 저작권 전문가는 아님

    • 일반론으로는, 기여는 보통 현재 라이선스로 제공된다고 가정함
      관리자는 라이선스를 바꿀 수 있지만, 그게 과거 기여분에 영향을 주지는 않음. 기본적으로 라이선스 변경 전까지의 모든 것은 기존 라이선스가 유지됨
      인기 소프트웨어가 라이선스를 바꿔도 포크가 가능한 이유가 이것임
      과거로 거슬러 라이선스를 바꾸려면 기여자 동의가 필요하거나, 그런 권한을 부여하는 문서가 있어야 함
      기여자 라이선스 계약(CLA)은 관리자가 과거분까지 마음대로 라이선스를 바꿀 권한을 줄 수도 있지만, 모든 CLA가 그런 것은 아님
      라이선스를 바꾼 유명 소프트웨어로는 RedisTerraform이 있음. 이런 경우에도 이미 배포된 소프트웨어는 여전히 예전 라이선스로 이용 가능하고, 그 예전 라이선스가 포크를 허용함
    • 애초에 Material이 그의 작업물이긴 했나?
    • Red Hat이나 Terraform처럼 회사가 주로 관리하는 많은 오픈소스 프로젝트가 비상업용으로 바뀌는 것과 비슷함
  • 요즘 대부분의 도구에는 기본으로 꽤 잘 만든 테마가 들어 있어서 좋음
    이런 위험을 줄이고 설치하는 확장/애드온을 최소화하고 싶다면 꽤 현실적인 선택지가 됨
    물론 소프트웨어를 이 정도로 테마화할 수 있고, 경우에 따라 사용성과 접근성을 개선할 수 있다는 점도 좋음
    다만 권한 제한 관련 기능 요청은 처리되어야 함

    • 테마가 보안 위험이 될 수 있다는 것 자체가 신기함
      명백히 단순한 색상 코드와 정의만으로 이루어진 게 아닌 듯함
      아마 테마 시스템을 더 엄격하게 조여야 할 것 같음