- Des utilisateurs de VS Code ont indiqué que
equinusocio.vsc-material-themeavait été supprimé avec le message signalé comme problématique, avec en plus un blocage de réinstallation ou des fenêtres pop-up répétées - La question posée dans le Q&A GitHub partait d’un doute sur la fiabilité des commentaires de la Marketplace, et la réponse retenue pointait vers une extension alternative de t3dotgg
- Au cœur de la polémique : le passage en closed-source de l’extension, des soupçons d’obfuscation du code et la manière dont l’auteur a répondu aux avis, ce qui a érodé la confiance
- Certains utilisateurs ont indiqué qu’une discussion sur un possible compromis de l’extension avait déjà eu lieu par le passé, en s’appuyant sur des commits supprimés, des discussions effacées et un post Reddit datant de six mois
- Pour faire disparaître les pop-up répétées, certains ont dû supprimer manuellement le dossier de l’extension et l’entrée
extensions.jsondans.vscodeou.vscode-insiders/extensions, voire réinstaller complètement VS Code
Message de problème affiché par VS Code
- Un utilisateur a indiqué que VS Code affichait le message
We have uninstalled 'equinusocio.vsc-material-theme' which was reported to be problematic. - À chaque fermeture puis réouverture de VS Code, l’extension semblait se réinstaller, et le même message continuait d’apparaître même après une suppression manuelle
- Un autre utilisateur a affirmé que VS Code bloquait aussi la réinstallation de l’extension
- Certains ont avancé que Settings Sync pouvait être en cause, mais l’utilisateur concerné n’en était pas sûr, expliquant qu’il venait d’installer Code récemment et n’avait configuré qu’un minimum d’extensions
Réponse retenue et extension alternative
- La réponse retenue propose
t3dotgg.vsc-material-theme-but-i-wont-sue-yousur la Visual Studio Marketplace - L’auteur de la question a ajouté dans le texte que ce lien de réponse était étayé par le dépôt de t3dotgg
- Un utilisateur a réagi en disant : « Maintenant, il y a de vraies conséquences, et c’était justement un jour où je devais travailler »
Polémique sur le code et la licence qui a sapé la confiance
- Un utilisateur a cité comme problème le récent passage en closed-source sans avertissement préalable, ajoutant qu’après avoir vu les réponses grossières de l’auteur aux avis d’utilisateurs inquiets, il ne lui faisait plus confiance
- Le même utilisateur a ajouté que le code obfusqué ressemblait à une sortie de
obfuscator.io - Un autre utilisateur a affirmé que l’auteur de l’extension menaçait les personnes utilisant Material Theme dans leurs produits, en semblant oublier que le projet était à l’origine sous Apache License 2.0
- Cet utilisateur a joint un lien vers ce qui semble être un ancien fichier de licence
- Le même commentaire affirme aussi que l’historique des commits a été effacé pour donner l’impression qu’une autre licence s’appliquait depuis le début
Historique supprimé et soupçons plus anciens
- Un utilisateur a indiqué qu’un grand nombre de commits et de discussions semblaient avoir été supprimés du dépôt Git
- Le même utilisateur a retrouvé sur Reddit un post vieux de six mois,
has_the_material_theme_extension_been_compromised, et a expliqué qu’il menait vers un lien de discussion cassé dans ce dépôt - Un autre utilisateur a réagi en disant que c’était « le seul thème de VSCode qu’il aimait », tandis qu’un autre a rappelé qu’il existait déjà de nombreux forks
Méthodes tentées pour faire disparaître les pop-up répétées
- Un utilisateur Linux a supprimé manuellement le dossier de l’extension dans le répertoire
.vscode, sans succès, puis a indiqué que la réinstallation de VS Code avait fait disparaître les pop-up - Un utilisateur Windows a expliqué avoir supprimé le dossier de l’extension sous
%USERPROFILE%/.vscode/puis retiré manuellement la définition correspondante dansextensions.json, ce qui a fait disparaître les pop-up - Un utilisateur de Visual Code Insiders a indiqué que cela avait refonctionné après avoir supprimé le dossier
equinusocio.vsc-material-theme-34.7.9dans.vscode-insiders/extensionspuis retiré l’objet correspondant dansextensions.json - Les commandes d’exemple incluent une procédure pour repérer l’entrée
equinusocio.vsc-material-themeaveccat extensions.json | jq | grep eq, puis supprimer le dossier de l’extension avecrm -rf equinusocio.vsc-material-theme-34.7.9
1 commentaires
Commentaires sur Hacker News
La publication supprimée est visible ici : https://web.archive.org/web/20250226020241/https://github.co...
Ici Isidor de l’équipe VS Code. Un membre de la communauté a effectué une analyse de sécurité approfondie de cette extension, a trouvé plusieurs signaux d’alerte suggérant une intention malveillante et les a signalés
Les chercheurs en sécurité de Microsoft ont confirmé ces affirmations et ont en plus découvert du code suspect
Nous avons bloqué cet éditeur sur le VS Marketplace, supprimé toutes les extensions concernées et retiré cette extension de toutes les instances de VS Code où elle était en cours d’exécution
Pour être clair, cette mesure n’a rien à voir avec le droit d’auteur ou la licence, et est due uniquement à une malveillance potentielle
Nous publierons bientôt une annonce plus détaillée sur https://github.com/microsoft/vsmarketplace/
À noter que le VS Marketplace continue d’investir dans la sécurité, et vous pouvez consulter des informations sur la confiance dans l’exécution des extensions sur https://code.visualstudio.com/docs/editor/extension-runtime-...
Même comportement si je la désinstalle normalement depuis le panneau des extensions
J’ai finalement dû supprimer manuellement le dossier de l’extension dans
%USERPROFILE%\.vscode\extensions, puis retirer aussi son entrée de%USERPROFILE%\.vscode\extensions\extensions.jsonVSCode 1.97.2, commit
e54c774e0add60467559eb0d1e229c6452cf8447Je pense aussi que le modèle de confiance de VSCode est fondamentalement cassé. Il exécute du code tiers arbitraire sur la machine cliente sans aucun sandbox
Vous ne déploieriez jamais un tel niveau de sécurité sur Azure, alors pourquoi l’« exécution de code tiers arbitraire sur la machine de quelqu’un d’autre » serait-elle acceptable dans VSCode ?
J’apprécie le travail de l’équipe VSCode et je l’utilise réellement, mais l’absence de sandbox m’a toujours mis mal à l’aise
https://marketplace.visualstudio.com/items?itemName=t3dotgg....
Je pose la question parce que https://open-vsx.org ne propose pas les versions publiées après le passage de cette extension en source fermée
Le compte éditeur Equinusocio de Material Theme et Material Theme Icons a été signalé par erreur, et il a maintenant été rétabli
Nous avons agi rapidement par précaution, mais nous avons commis une erreur. Ces thèmes ont déclenché plusieurs indicateurs internes de détection de malware chez Microsoft, et l’enquête a abouti à une mauvaise conclusion
Nous prenons la sécurité de l’écosystème VS Code très au sérieux et avons agi vite pour protéger les utilisateurs
Nous comprenons la frustration et la réaction vive de l’auteur des extensions Equinusocio, et nous avons entendu sa voix. C’est regrettable, mais ce genre de chose arrive parfois. Nous faisons de notre mieux, mais nous sommes humains nous aussi, et nous espérons maintenant clore cet épisode et aller de l’avant
Nous clarifierons notre politique sur le code obfusqué et mettrons à jour nos scanners ainsi que nos procédures d’enquête afin de réduire la probabilité que cela se reproduise
Ces extensions sont sûres et ont été rétablies pour que la communauté VS Code puisse les utiliser
Material Theme : https://marketplace.visualstudio.com/items?itemName=Equinuso...
Material Theme Icons : https://marketplace.visualstudio.com/items?itemName=Equinuso...
Nous nous excusons à nouveau que l’auteur se soit retrouvé pris dans les conséquences de cette affaire, et attendons avec intérêt ses prochains thèmes et extensions. Nous l’avons contacté pour discuter de mesures de compensation et le remercions pour sa patience
Scott Hanselman et l’équipe Visual Studio Code Marketplace - @shanselman
Il a créé le fork le plus en vue de cette extension, « Material Theme (But I Won't Sue You) »
Le mainteneur d'origine a complètement dépassé les bornes l'an dernier. Il a retiré hors ligne le code source initialement sous Apache 2 et a commencé à menacer de poursuites ceux qui hébergeraient des versions alternatives ou l'intégreraient dans d'autres IDE
Par simple précaution, j'ai pris les mesures suivantes sur mon fork. J'ai donné à l'équipe VS Code toute autorisation pour l'auditer immédiatement, et si le moindre malware est découvert, ils peuvent le retirer de la Marketplace sur-le-champ et forcer sa suppression chez les utilisateurs
J'ai aussi audité en profondeur le codebase, sans rien y trouver qui paraisse malveillant, et j'ai supprimé tout le code lié au changelog, à l'analytics, à Open Collective et au rendu HTML
Les seules choses qui me semblaient un peu inquiétantes étaient le HTML du changelog et le chargeur Sanity, donc je les ai entièrement retirés. En deux PR, j'ai supprimé la quasi-totalité des dépendances et plus de 7 000 lignes, dont la plupart venaient de
package-lockSi quelqu'un d'autre veut auditer, le dépôt est ici : https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you
Encore plus délirant, c'est l'idée que quelqu'un puisse « forcer la suppression » de quoi que ce soit sur ma machine
Heureux de ne pas être utilisateur de VS Code. On dirait qu'on retrouve toute la tambouille d'entreprise habituelle dans la Marketplace et les plugins
Fait intéressant, quelqu'un sur Reddit avait remarqué des changements suspects dans cette extension il y a 7 mois [1]. Dans l'open source, l'obfuscation est généralement un signal d'alarme extrême
Microsoft devrait sérieusement repenser le modèle de sécurité des extensions VS Code. Dans son état actuel, c'est devenu une cible bien trop rentable pour les attaques
Même si l'on bloque un développeur, 10 nouvelles extensions malveillantes suivront
[1] https://www.reddit.com/r/vscode/comments/1eq40o2/has_the_mat...
VS Code est peut-être l'un des meilleurs produits que Microsoft ait jamais sortis, et l'une des grandes raisons, c'est la Marketplace des extensions
Si Microsoft serre davantage la vis sur la Marketplace, il y a de fortes chances que la qualité de VS Code se dégrade
Le raisonnement est le suivant : si l'examen de la Marketplace devient plus strict, la barrière à l'entrée monte et le nombre total d'extensions baisse. S'il y a moins d'extensions, Microsoft sera davantage incité à intégrer directement les fonctionnalités dans le cœur de VS Code. Et plus Microsoft en ajoute, plus VS Code va s'alourdir
Au final, augmenter les audits de sécurité de la Marketplace des extensions pourrait conduire à un VS Code plus lourd
Bien sûr, ce serait bien d'avoir de meilleurs contrôles de sécurité sur la Marketplace des extensions, mais je ne crois pas que Microsoft soit capable de le faire d'une manière qui améliore réellement le produit pour les utilisateurs
Après avoir lu ce qui s'est passé, cette personne paraît instable. On dirait qu'elle pense littéralement être propriétaire des codes couleur hexadécimaux
Techniquement, ce n'est pas brillant non plus, et il a fait fuir toutes les personnes compétentes
Je n'utilise pas son logiciel, mais j'espère qu'il tournera vite la page après cet épisode et qu'il apprendra qu'il n'a pas inventé Material
Il faut plutôt envisager qu'elle soit habile et trompeuse, ou même un intermédiaire pour un service de renseignement
Ce n'est pas de la paranoïa que d'avoir ce genre de soupçons envers quelqu'un qui injecte du malware dans des outils de développement
Quelqu'un a mis en ligne l'extension alternative Material Theme (But I Won't Sue You)
https://marketplace.visualstudio.com/items?itemName=t3dotgg....
J'ai cloné et parcouru le dépôt https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you, et voici le résumé en lignes de code
CSS: 2 fichiers, 142 lignes, 119 lignes de code, 0 ligne de commentaire, 23 lignes videsTypeScript: 32 fichiers, 2026 lignes, 1650 lignes de code, 243 lignes de commentaire, 133 lignes videsHTML: 2 fichiers, 59 lignes, 49 lignes de code, 1 ligne de commentaire, 9 lignes videsTotal : 36 fichiers, 2227 lignes, 1818 lignes de code, 244 lignes de commentaire, 165 lignes vides
Parmi elles, 622 lignes de TypeScript sont des définitions de couleurs hexadécimales par variante dans
scripts/generator/settings/specificLe reste ressemble aussi surtout à du code passe-partout, comme par exemple les 599 lignes de
scripts/generator/color-set.tsLa question reste donc entière. Qu'y a-t-il exactement à maintenir qui demande plus de quelques minutes ?
J'ai publié et maintenu pendant des années des projets open source bien plus substantiels sans jamais attendre de contribution financière
Qu'est-ce que les thèmes Material ont donc pour rendre les gens comme ça ? Il y a environ 5 ans, il y avait déjà eu quelque chose de similaire du côté d'IntelliJ
Cela dit, là-bas, ce n'était pas littéralement juste des couleurs
Quelqu’un peut-il indiquer où se trouvait la partie malveillante dans le dépôt ? Je ne la trouve pas.
J’ai trouvé le code obfusqué ici : https://web.archive.org/web/20250226020241/https://github.co...
C’est vraiment étrange que cette personne soit passée en source fermée après avoir reçu les contributions d’autres personnes. Ça ne me paraît pas correct, mais je ne suis pas spécialiste du droit d’auteur.
Le mainteneur peut changer la licence, mais cela n’affecte pas les contributions passées. En pratique, tout ce qui précède le changement de licence reste sous l’ancienne licence.
C’est pour cela que, même quand un logiciel populaire change de licence, un fork reste possible.
Pour changer rétroactivement la licence, il faut l’accord des contributeurs, ou un document accordant ce pouvoir.
Un contrat de licence contributeur (CLA) peut donner au mainteneur le droit de changer librement la licence, y compris pour les versions passées, mais tous les CLA ne le permettent pas.
Parmi les logiciels connus ayant changé de licence, on peut citer Redis et Terraform. Même dans ces cas, les versions déjà distribuées restent utilisables sous l’ancienne licence, et cette ancienne licence autorise le fork.
C’est bien qu’aujourd’hui la plupart des outils incluent par défaut des thèmes plutôt bien conçus.
Si l’on veut réduire ce type de risque et minimiser le nombre d’extensions/add-ons installés, c’est une option tout à fait réaliste.
Bien sûr, c’est aussi appréciable de pouvoir personnaliser un logiciel à ce point, et dans certains cas cela peut améliorer l’ergonomie et l’accessibilité.
En revanche, les demandes de fonctionnalités liées à la limitation des permissions devraient être traitées.
Manifestement, il ne s’agit pas uniquement de simples codes couleur et définitions.
Il faudrait sans doute rendre le système de thèmes beaucoup plus strict.