1 Punkte von GN⁺ 2025-02-27 | 1 Kommentare | Auf WhatsApp teilen
  • VS-Code-Nutzer berichten, dass equinusocio.vsc-material-theme mit der Meldung als problematisch gemeldet entfernt wurde und dass Neuinstallationen blockiert wurden oder wiederholte Pop-ups erschienen
  • Die Frage in GitHub Q&A begann mit der Zuverlässigkeit von Marketplace-Kommentaren; die ausgewählte Antwort verweist auf eine alternative Erweiterung von t3dotgg
  • Kern der Kontroverse ist, dass das Vertrauen durch die Kombination aus Umstellung der Erweiterung auf Closed Source, Vorwürfen zu Code-Obfuskation und dem Umgang des Autors mit Reviews erschüttert wurde
  • Einige Nutzer verweisen auf gelöschte Commits und Diskussionsverläufe sowie auf einen Reddit-Beitrag von vor sechs Monaten und berichten, dass schon früher diskutiert wurde, ob die Erweiterung kompromittiert sei
  • Um die wiederholten Pop-ups loszuwerden, mussten manche Nutzer den Erweiterungsordner und den Eintrag in extensions.json unter .vscode oder .vscode-insiders/extensions manuell löschen; in einigen Fällen war sogar eine Neuinstallation von VS Code nötig

Von VS Code angezeigte Problemmeldung

  • Ein Nutzer teilte mit, VS Code habe die Meldung We have uninstalled 'equinusocio.vsc-material-theme' which was reported to be problematic. angezeigt
  • Jedes Mal, wenn VS Code geschlossen und erneut geöffnet wurde, wirkte es so, als würde die Erweiterung wieder installiert; selbst nach manueller Entfernung erschien dieselbe Meldung weiter
  • Ein anderer Nutzer sagte, VS Code habe auch die Neuinstallation der Erweiterung blockiert
  • Es gab die Vermutung, Settings Sync könne die Ursache sein; der betroffene Nutzer war sich aber nicht sicher, da er Code erst kürzlich neu installiert und nur minimale Erweiterungen eingerichtet hatte

Ausgewählte Antwort und alternative Erweiterung

Code- und Lizenzkontroverse erschüttert Vertrauen

  • Ein Nutzer nannte die jüngste Umstellung auf Closed Source und fehlende Vorwarnung als Problem und erklärte, er vertraue der Erweiterung nicht mehr, nachdem er gesehen habe, wie der Autor in Review-Antworten unhöflich auf besorgte Nutzer reagierte
  • Derselbe Nutzer ergänzte, der obfuskierte Code sehe aus wie eine Ausgabe von obfuscator.io
  • Ein anderer Nutzer behauptete, der Autor der Erweiterung bedrohe Personen, die Material Theme in ihren Produkten nutzen, und scheine vergessen zu haben, dass die Erweiterung ursprünglich unter Apache License 2.0 stand
    • Dieser Nutzer fügte einen Link an, der wie eine frühere Lizenzdatei aussieht
    • Derselbe Kommentar behauptet, die Commit-Historie sei gelöscht worden, damit es so aussehe, als habe von Anfang an eine andere Lizenz gegolten

Gelöschte Historie und frühere Verdachtsmomente

  • Ein Nutzer sagte, im Git-Repository seien offenbar viele Commits und Diskussionsverläufe gelöscht worden
  • Derselbe Nutzer fand einen Reddit-Beitrag von vor sechs Monaten mit dem Titel has_the_material_theme_extension_been_compromised und teilte mit, dass dieser Beitrag auf einen defekten Discussion-Link dieses Repositorys verweise
  • Ein anderer Nutzer reagierte, es sei das „einzige Theme gewesen, das ich in VSCode mochte“, während ein weiterer sagte, es gebe bereits viele Forks

Versuchte Methoden gegen die wiederholten Pop-ups

  • Ein Linux-Nutzer löschte den Erweiterungsordner im Verzeichnis .vscode manuell, was das Problem jedoch nicht löste; erst nach einer Neuinstallation von VS Code verschwand das Pop-up
  • Ein Windows-Nutzer berichtete, er habe den Erweiterungsordner unter %USERPROFILE%/.vscode/ gelöscht und die Definition der betreffenden Erweiterung manuell aus extensions.json entfernt, wodurch das Pop-up verschwand
  • Ein Nutzer von Visual Code Insiders sagte, es habe wieder funktioniert, nachdem er den Ordner equinusocio.vsc-material-theme-34.7.9 unter .vscode-insiders/extensions gelöscht und das entsprechende Objekt aus extensions.json entfernt hatte
  • Die Beispielbefehle umfassen den Ablauf, mit cat extensions.json | jq | grep eq den Eintrag equinusocio.vsc-material-theme zu finden und mit rm -rf equinusocio.vsc-material-theme-34.7.9 den Erweiterungsordner zu löschen

1 Kommentare

 
GN⁺ 2025-02-27
Meinungen auf Hacker News
  • Der gelöschte Beitrag ist hier einsehbar: https://web.archive.org/web/20250226020241/https://github.co...

  • Ich bin Isidor aus dem VS-Code-Team. Ein Community-Mitglied hat eine gründliche Sicherheitsanalyse dieser Erweiterung durchgeführt und dabei mehrere Warnsignale gefunden und gemeldet, die auf böswillige Absichten hindeuteten.
    Microsoft-Sicherheitsforscher haben diese Behauptungen überprüft und zusätzlich weiteren verdächtigen Code gefunden.
    Wir haben diesen Publisher im VS Marketplace gesperrt, alle betreffenden Erweiterungen entfernt und diese Erweiterung von allen VS-Code-Instanzen entfernt, auf denen sie ausgeführt wurde.
    Um es klarzustellen: Diese Maßnahme hat nichts mit Urheberrecht oder Lizenzen zu tun, sondern ausschließlich mit potenzieller Bösartigkeit.
    In Kürze werden wir unter https://github.com/microsoft/vsmarketplace/ eine ausführlichere Mitteilung veröffentlichen.
    Zur Einordnung: Der VS Marketplace investiert weiterhin in Sicherheit; Informationen zum Vertrauen in die Extension Runtime gibt es unter https://code.visualstudio.com/docs/editor/extension-runtime-....

    • VSCode schafft es nicht, diese Erweiterung zu entfernen. Es erscheint eine Aufforderung zur Entfernung; bestätigt man sie, wird das Fenster neu geladen, aber die Erweiterung bleibt erhalten, und dieselbe „problematisch“-Aufforderung erscheint erneut — eine Endlosschleife.
      Beim Entfernen über das Extension-Panel auf normalem Weg passiert dasselbe.
      Am Ende musste ich den Erweiterungsordner unter %USERPROFILE%\.vscode\extensions manuell löschen und den Eintrag auch aus %USERPROFILE%\.vscode\extensions\extensions.json entfernen.
      VSCode 1.97.2, Commit e54c774e0add60467559eb0d1e229c6452cf8447
    • Diese Diskrepanz sollte bitte erklärt werden. Wenn man darauf angewiesen ist, dass die Community auf Probleme im Marketplace hinweist, investiert Microsoft dann nicht zu wenig darin, populäre Erweiterungen selbst zu auditieren?
      Auch das Vertrauensmodell von VSCode halte ich für grundlegend kaputt. Auf Client-Rechnern wird beliebiger Drittanbieter-Code ohne jede Sandbox ausgeführt.
      Ein solches Sicherheitsniveau würde man in Azure wohl kaum ausrollen; warum ist es dann bei VSCode angemessen, „beliebigen Drittanbieter-Code auf den Rechnern anderer Leute auszuführen“?
      Ich schätze die Arbeit des VS-Code-Teams und nutze es tatsächlich, aber das Fehlen einer Sandbox hat sich für mich immer unangenehm angefühlt.
    • Möglicherweise sollte man auch Re-Uploads nachverfolgen.
      https://marketplace.visualstudio.com/items?itemName=t3dotgg....
    • Wir möchten prüfen, ob diese Erweiterung auch bei Open VSX als bösartig markiert werden kann. Mich würde interessieren, ob ihr den Versionsbereich kennt, der den Schadcode enthält.
      Ich frage, weil auf https://open-vsx.org keine Versionen dieser Erweiterung verfügbar sind, nachdem sie auf Closed Source umgestellt wurde.
    • False Positives sind wirklich schwierig und haben große Auswirkungen, wenn sie tatsächlich passieren.
      Das Publisher-Konto Equinusocio von Material Theme und Material Theme Icons wurde versehentlich geflaggt und ist nun wiederhergestellt.
      Wir haben aus Sicherheitsgründen schnell gehandelt, dabei aber einen Fehler gemacht. Diese Themes haben mehrere interne Malware-Erkennungsindikatoren bei Microsoft ausgelöst, und die Untersuchung führte zu einem falschen Schluss.
      Wir nehmen die Sicherheit des VS-Code-Ökosystems sehr ernst und haben schnell gehandelt, um Nutzer zu schützen.
      Wir verstehen die Frustration und die heftige Reaktion des Autors der Equinusocio-Erweiterungen und haben sie gehört. Das ist unschön, aber manchmal passieren solche Dinge. Wir geben unser Bestes, sind aber auch nur Menschen; jetzt möchten wir das bereinigen und nach vorn schauen.
      Wir werden unsere Richtlinie zu obfuskiertem Code klarer fassen und unsere Scanner sowie Untersuchungsprozesse aktualisieren, um die Wahrscheinlichkeit zu verringern, dass so etwas erneut passiert.
      Diese Erweiterungen sind sicher und wurden wiederhergestellt, damit die VS-Code-Community sie nutzen kann.
      Material Theme: https://marketplace.visualstudio.com/items?itemName=Equinuso...
      Material Theme Icons: https://marketplace.visualstudio.com/items?itemName=Equinuso...
      Nochmals Entschuldigung dafür, dass der Autor in diese Folgen hineingezogen wurde; wir freuen uns auf seine künftigen Themes und Erweiterungen. Wir haben Kontakt mit ihm aufgenommen, um Kompensationsmaßnahmen zu besprechen, und danken ihm für seine Geduld.
      Scott Hanselman und das Visual Studio Code Marketplace Team – @shanselman
  • Ich habe den prominentesten Fork dieser Erweiterung erstellt: „Material Theme (But I Won't Sue You)“
    Der ursprüngliche Maintainer hat letztes Jahr endgültig eine Grenze überschritten. Er nahm den ursprünglich unter Apache 2 stehenden Quellcode offline und begann damit zu drohen, Leute zu verklagen, die alternative Versionen hosten oder sie in andere IDEs einbinden
    Aus ausreichender Vorsicht habe ich bei meinem Fork folgende Maßnahmen ergriffen: Das VS-Code-Team führt derzeit ein Audit durch, und ich habe ausdrücklich erlaubt, ihn sofort aus dem Marketplace zu entfernen und bei Nutzern zwangsweise zu deinstallieren, falls auch nur irgendein Schadcode gefunden wird
    Ich habe auch die Codebasis gründlich auditiert, aber nichts gefunden, das bösartig wirkte, und sämtlichen Code für Changelog, Analytics, Open Collective und HTML-Rendering entfernt
    Ein bisschen Sorge machten mir nur das HTML für das Changelog und der Sanity-Loader, also habe ich sie komplett herausgenommen. Mit zwei PRs wurden nahezu alle Abhängigkeiten und über 7.000 Zeilen entfernt, wobei der Großteil davon package-lock ist
    Falls jemand anderes ein Audit durchführen möchte, ist das Repository hier: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you

    • Dass ein Theme überhaupt Analytics-Code und jede Menge Abhängigkeiten ansammeln kann, wirkt absurd. Ein Theme sollte normalerweise ein in sich geschlossenes Paket aus Farben/Styles sein
      Noch absurder ist, dass irgendjemand auf meinem Rechner etwas „zwangsweise deinstallieren“ kann
      Zum Glück bin ich kein VS-Code-Nutzer. Im Marketplace und bei den Plug-ins scheint sich der typische Corporate-Lärm abzuspielen
    • Ich verstehe nicht, warum weder im Repository noch auf der Marketplace-Seite auch nur ein Screenshot zu finden ist, der zeigt, wie es aussieht. Habe ich etwas übersehen?
  • Interessanterweise hat jemand auf Reddit schon vor 7 Monaten verdächtige Änderungen an dieser Erweiterung bemerkt [1]. Obfuscation ist bei Open Source normalerweise ein extremes Warnsignal
    Microsoft sollte das Sicherheitsmodell für VS-Code-Erweiterungen ernsthaft überdenken. In der aktuellen Form ist es als Angriffsziel viel zu lukrativ geworden
    Wenn man einen Entwickler sperrt, folgen zehn neue bösartige Erweiterungen
    [1] https://www.reddit.com/r/vscode/comments/1eq40o2/has_the_mat...

    • Man sollte vorsichtig sein, was man sich wünscht
      VS Code ist möglicherweise eines der besten Produkte, die Microsoft je veröffentlicht hat, und ein großer Grund dafür ist der Extension Marketplace
      Wenn Microsoft den Marketplace stärker kontrolliert, wird die Qualität von VS Code wahrscheinlich schlechter
      Die Begründung ist folgende: Strengere Marketplace-Prüfungen erhöhen die Einstiegshürde und verringern die Gesamtzahl der Erweiterungen. Weniger Erweiterungen schaffen für Microsoft einen Anreiz, Funktionen direkt in VS Code einzubauen. Je mehr Funktionen Microsoft einbaut, desto aufgeblähter wird VS Code
      Am Ende könnte mehr Sicherheitsauditierung des Extension Marketplace also zu einem aufgeblähteren VS Code führen
      Natürlich wären bessere Sicherheitskontrollen im Extension Marketplace wünschenswert, aber ich glaube nicht, dass Microsoft das auf eine Weise umsetzen wird, die das Produkt für echte Nutzer verbessert
  • Nachdem ich die entsprechenden Inhalte gelesen habe, wirkt diese Person instabil. Sie scheint buchstäblich hexadezimale Farbcodes als ihr Eigentum zu betrachten
    Technisch ist sie auch nicht besonders gut und hat alle fähigen Leute vertrieben
    Ich nutze seine Software nicht, aber ich hoffe, dass er schnell über diese Episode hinwegkommt und lernt, dass er Material nicht erfunden hat

    • Pantone hätte dazu vermutlich gern ein Wörtchen zu sagen
    • Jemand hat ihn als lunatic bezeichnet, aber das hier ist ein Sicherheitsproblem. Man sollte nicht einfach annehmen, dass jemand instabil oder verrückt ist, wenn er erfolgreich Schadcode in die IDEs von Entwicklern weltweit einschleust
      Man sollte eher davon ausgehen, dass er raffiniert und betrügerisch ist oder vielleicht ein Handlanger eines Nachrichtendienstes
      Solche Verdachtsmomente gegenüber jemandem, der Schadcode in Entwicklertools einschleust, sind keine Paranoia
  • Jemand hat eine alternative Erweiterung namens Material Theme (But I Won't Sue You) hochgeladen
    https://marketplace.visualstudio.com/items?itemName=t3dotgg....

    • Da der ursprüngliche Autor viel über Entwicklungs- und Wartungskosten gesprochen hat, fragte ich mich, was daran überhaupt zu warten ist
      Ich habe das Repository https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you geklont und mir angesehen; die Zusammenfassung der Codezeilen sieht so aus
      CSS: 2 Dateien, 142 Zeilen, 119 Codezeilen, 0 Kommentarzeilen, 23 Leerzeilen
      TypeScript: 32 Dateien, 2026 Zeilen, 1650 Codezeilen, 243 Kommentarzeilen, 133 Leerzeilen
      HTML: 2 Dateien, 59 Zeilen, 49 Codezeilen, 1 Kommentarzeile, 9 Leerzeilen
      Insgesamt 36 Dateien, 2227 Zeilen, 1818 Codezeilen, 244 Kommentarzeilen, 165 Leerzeilen
      Davon sind 622 TypeScript-Zeilen hexadezimale Farbdefinitionen für Varianten in scripts/generator/settings/specific
      Der Rest wirkt ebenfalls weitgehend wie Boilerplate, zum Beispiel die 599 Zeilen in scripts/generator/color-set.ts
      Die Frage bleibt also: Was genau muss hier gewartet werden, das mehr als ein paar Minuten benötigen würde?
      Ich habe über Jahre hinweg deutlich substanziellere Open-Source-Projekte veröffentlicht und gepflegt, ohne je finanzielle Beiträge zu erwarten
    • Der Ersteller der alternativen Erweiterung scheint der Tech-YouTuber theo zu sein (https://m.youtube.com/@t3dotgg)
    • Oh, das bin ich. Ehrlich gesagt überrascht es mich nicht, dass dieser Typ ein bisschen durchgedreht ist
  • Was hat es eigentlich mit Material-Themes auf sich, dass sie Leute so werden lassen? Vor etwa fünf Jahren gab es auf der IntelliJ-Seite etwas Ähnliches
    Allerdings bestand das damals nicht buchstäblich nur aus Farben

    • Offenbar passiert das mit allem, was beliebt ist und Monetarisierungspotenzial hat
  • Kann jemand im Repository zeigen, wo genau der bösartige Teil war? Ich finde ihn nicht.
    Den obfuskierten Code habe ich hier gefunden: https://web.archive.org/web/20250226020241/https://github.co...

  • Dass diese Person Beiträge anderer angenommen und das Projekt danach auf Closed Source umgestellt hat, ist wirklich merkwürdig. Es wirkt nicht richtig, aber ich bin kein Urheberrechtsexperte.

    • Allgemein geht man davon aus, dass Beiträge normalerweise unter der jeweils aktuellen Lizenz bereitgestellt werden.
      Der Maintainer kann die Lizenz ändern, aber das wirkt sich nicht auf frühere Beiträge aus. Grundsätzlich bleibt alles bis zur Lizenzänderung unter der bisherigen Lizenz.
      Deshalb können beliebte Softwareprojekte auch nach einem Lizenzwechsel geforkt werden.
      Um eine Lizenz rückwirkend zu ändern, braucht man die Zustimmung der Beitragenden oder ein Dokument, das solche Rechte einräumt.
      Ein Contributor License Agreement (CLA) kann dem Maintainer das Recht geben, auch frühere Beiträge nach Belieben neu zu lizenzieren, aber nicht jedes CLA tut das.
      Bekannte Software, die ihre Lizenz geändert hat, sind Redis und Terraform. Auch in solchen Fällen kann bereits veröffentlichte Software weiterhin unter der alten Lizenz genutzt werden, und diese alte Lizenz erlaubt Forks.
    • War Material überhaupt ursprünglich seine Arbeit?
    • Es ähnelt vielen Open-Source-Projekten, die hauptsächlich von Unternehmen gepflegt werden und wie bei Red Hat oder Terraform auf nicht-kommerziell umgestellt werden.
  • Es ist gut, dass die meisten Tools heutzutage standardmäßig ziemlich gut gemachte Themes mitbringen.
    Wenn man solche Risiken verringern und die Zahl installierter Extensions/Add-ons minimieren will, ist das eine recht realistische Option.
    Natürlich ist es auch gut, dass Software in diesem Maß thematisiert werden kann und dadurch je nach Fall Usability und Barrierefreiheit verbessert werden können.
    Allerdings sollten Feature Requests zu Berechtigungsbeschränkungen umgesetzt werden.

    • Dass ein Theme überhaupt ein Sicherheitsrisiko sein kann, ist schon erstaunlich.
      Offenbar besteht es nicht nur aus offensichtlich simplen Farbcodes und Definitionen.
      Vermutlich sollte das Theme-System stärker eingeschränkt werden.