1 puntos por GN⁺ 2025-02-27 | 1 comentarios | Compartir por WhatsApp
  • Usuarios de VS Code compartieron que equinusocio.vsc-material-theme fue eliminado con el mensaje reportado como problemático, y que incluso sufrieron bloqueos al reinstalarlo o pop-ups repetidos
  • La pregunta en GitHub Q&A partió de cuestionar la confiabilidad de los comentarios del Marketplace, y la respuesta seleccionada llevó a un enlace de una extensión alternativa de t3dotgg
  • El núcleo de la controversia es que se combinan el cambio a closed-source de la extensión, sospechas de ofuscación de código y la actitud del autor al responder reseñas, lo que debilitó la confianza
  • Algunos usuarios compartieron que, con base en commits y registros de discusiones eliminados, además de un post de Reddit de hace 6 meses, ya se había debatido en el pasado si la extensión había sido comprometida
  • Para eliminar los pop-ups repetidos, hubo casos en los que fue necesario borrar manualmente la carpeta de la extensión y la entrada de extensions.json en .vscode o .vscode-insiders/extensions, o incluso reinstalar VS Code

Mensaje de problema mostrado por VS Code

  • Un usuario compartió que VS Code mostró el mensaje We have uninstalled 'equinusocio.vsc-material-theme' which was reported to be problematic.
  • Dijo que cada vez que cerraba y volvía a abrir VS Code, parecía que la extensión se instalaba de nuevo, y que incluso después de quitarla manualmente seguía apareciendo el mismo mensaje
  • Otro usuario dijo que VS Code también bloqueó la reinstalación de la extensión
  • También hubo opiniones de que Settings Sync podría ser la causa, pero el usuario afectado dijo que había instalado Code recientemente y que solo tenía configuradas unas pocas extensiones, por lo que no estaba seguro

Respuesta seleccionada y extensión alternativa

  • La respuesta seleccionada presenta t3dotgg.vsc-material-theme-but-i-wont-sue-you del Visual Studio Marketplace
  • La persona que hizo la pregunta agregó en el cuerpo que el enlace de esa respuesta está respaldado por el repositorio de t3dotgg
  • Un usuario dejó la reacción: “Ahora sí hay un resultado real, y justo hoy era un día en el que tenía que trabajar”

Controversia sobre el código y la licencia que debilitó la confianza

  • Un usuario señaló como problema el reciente cambio a closed-source y la falta de aviso previo, y dijo que ya no confía en la extensión tras ver respuestas groseras del autor en las reseñas hacia usuarios preocupados
  • El mismo usuario agregó que el código ofuscado parece una salida de obfuscator.io
  • Otro usuario afirmó que el autor de la extensión está amenazando a personas que usan Material Theme en sus productos, y que parece haber olvidado que originalmente tenía Apache License 2.0
    • Este usuario adjuntó un enlace que parece ser un archivo de licencia anterior
    • El mismo comentario afirmó que se borró el historial de commits para hacer que pareciera que siempre había tenido otra licencia

Registros eliminados y sospechas previas

  • Un usuario dijo que parece que se eliminaron muchos commits y registros de discusiones del repositorio Git
  • El mismo usuario compartió que encontró un post de Reddit de hace 6 meses, has_the_material_theme_extension_been_compromised, y que ese post lleva a un enlace roto de discussion de este repositorio
  • Otro usuario reaccionó diciendo que era “el único tema que me gustaba en VSCode”, y otro comentó que ya hay muchos forks

Métodos intentados para eliminar los pop-ups repetidos

  • Un usuario de Linux dijo que borró manualmente la carpeta de la extensión en el directorio .vscode, pero no se solucionó, y que al reinstalar VS Code desapareció el pop-up
  • Un usuario de Windows compartió que eliminó la carpeta de la extensión debajo de %USERPROFILE%/.vscode/ y borró manualmente la definición de la extensión en extensions.json, con lo que desapareció el pop-up
  • Un usuario de Visual Code Insiders dijo que borró la carpeta equinusocio.vsc-material-theme-34.7.9 en .vscode-insiders/extensions, quitó el objeto correspondiente de extensions.json y luego volvió a funcionar
  • Los comandos de ejemplo incluyen el procedimiento de encontrar la entrada equinusocio.vsc-material-theme con cat extensions.json | jq | grep eq y borrar la carpeta de la extensión con rm -rf equinusocio.vsc-material-theme-34.7.9

1 comentarios

 
GN⁺ 2025-02-27
Opiniones de Hacker News
  • La publicación eliminada se puede ver aquí: https://web.archive.org/web/20250226020241/https://github.co...

  • Soy Isidor, del equipo de VS Code. Un miembro de la comunidad hizo un análisis de seguridad profundo de esta extensión y reportó varias señales de alerta que sugerían una intención maliciosa.
    Investigadores de seguridad de Microsoft verificaron esas afirmaciones y además encontraron más código sospechoso.
    Bloqueamos a este publisher en VS Marketplace, eliminamos todas esas extensiones y las quitamos de todas las instancias de VS Code donde se estuvieran ejecutando.
    Para dejarlo claro: esta medida no tiene que ver con derechos de autor ni licencias, sino únicamente con posible malicia.
    Pronto publicaremos un aviso con más detalles en https://github.com/microsoft/vsmarketplace/.
    Como referencia, VS Marketplace sigue invirtiendo en seguridad, y pueden ver información sobre la confianza en el runtime de extensiones en https://code.visualstudio.com/docs/editor/extension-runtime-...

    • VSCode no logra eliminar esta extensión. Aparece un prompt pidiendo eliminarla; al confirmar, la ventana se recarga, pero la extensión sigue ahí, y vuelve a aparecer el mismo prompt de “hay un problema”, en un bucle infinito.
      Al eliminarla de la forma habitual desde el panel de extensiones ocurre lo mismo.
      Al final tuve que borrar manualmente la carpeta de la extensión en %USERPROFILE%\.vscode\extensions y también quitar la entrada de %USERPROFILE%\.vscode\extensions\extensions.json.
      VSCode 1.97.2, commit e54c774e0add60467559eb0d1e229c6452cf8447
    • Me gustaría que explicaran un poco esta contradicción. Si dependen de que la comunidad les avise sobre problemas del Marketplace, ¿no significa eso que Microsoft no está invirtiendo lo suficiente en auditar directamente las extensiones populares?
      También creo que el modelo de confianza de VSCode está roto de raíz. Está ejecutando código arbitrario de terceros en la máquina del cliente sin ningún tipo de sandbox.
      No desplegarían este nivel de seguridad en Azure; entonces, ¿por qué en VSCode es aceptable “ejecutar código arbitrario de terceros en máquinas ajenas”?
      Aprecio el trabajo del equipo de VSCode y de hecho lo uso, pero la ausencia de sandbox siempre me ha incomodado.
    • Quizá también haya que rastrear las resubidas.
      https://marketplace.visualstudio.com/items?itemName=t3dotgg....
    • También quisiera revisar si en Open VSX podemos marcar esta extensión como maliciosa. Me pregunto si conocen el rango de versiones que contenía el código malicioso.
      Lo pregunto porque en https://open-vsx.org no están subidas las versiones posteriores a que esta extensión pasara a ser de código cerrado.
    • Los falsos positivos son realmente difíciles y, cuando ocurren, el impacto es grande.
      La cuenta de publisher Equinusocio, de Material Theme y Material Theme Icons, fue marcada por error y ya fue restaurada.
      Actuamos rápido por seguridad, pero nos equivocamos. Estos temas activaron varios indicadores internos de detección de malware de Microsoft y, tras la investigación, llegamos a una conclusión incorrecta.
      Nos tomamos muy en serio la seguridad del ecosistema de VS Code y actuamos con rapidez para proteger a los usuarios.
      Entendemos la frustración y la reacción intensa del autor de las extensiones de Equinusocio, y escuchamos su voz. Es algo malo, pero a veces estas cosas pasan. Hacemos lo mejor posible, pero también somos humanos, y ahora esperamos ordenar este asunto y seguir adelante.
      Aclararemos la política sobre código ofuscado y actualizaremos nuestros scanners y procedimientos de investigación para reducir la posibilidad de que algo así vuelva a ocurrir.
      Estas extensiones son seguras y fueron restauradas para que la comunidad de VS Code pueda usarlas.
      Material Theme: https://marketplace.visualstudio.com/items?itemName=Equinuso...
      Material Theme Icons: https://marketplace.visualstudio.com/items?itemName=Equinuso...
      Volvemos a disculparnos con el autor por haber quedado atrapado en las consecuencias de esto, y esperamos sus próximos temas y extensiones. Nos pusimos en contacto con él para discutir medidas de compensación y le agradecemos su paciencia.
      Scott Hanselman y el equipo de Visual Studio Code Marketplace - @shanselman
  • Creé el fork más destacado de esta extensión, “Material Theme (But I Won't Sue You)”
    El maintainer original se pasó completamente de la raya el año pasado. Bajó de internet el código fuente que originalmente era Apache 2 y empezó a amenazar con demandar a quienes alojaran versiones alternativas o lo incluyeran en otros IDE
    Por simple precaución, tomé las siguientes medidas en mi fork. El equipo de VS Code lo está auditando ahora mismo, y les di permiso total para retirarlo de inmediato del Marketplace y forzar su desinstalación en los usuarios si encuentran siquiera una pieza de código malicioso
    También audité a fondo la base de código y no encontré nada que pareciera malicioso; eliminé todo el código relacionado con el registro de cambios, analíticas, Open Collective y renderizado HTML
    Lo único que me preocupaba un poco era el HTML para el changelog y el cargador de Sanity, así que los saqué por completo. En dos PR eliminé casi todas las dependencias y más de 7,000 líneas, aunque la mayoría eran de package-lock
    Si alguien más quiere auditarlo, el repositorio está aquí: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you

    • Me parece absurdo que un tema pueda acumular código de analíticas y tantas dependencias. Un tema normalmente debería ser un paquete autocontenido de colores/estilos
      Lo todavía más absurdo es que alguien pueda “forzar la desinstalación” de cualquier cosa en mi máquina
      Me alegra no ser usuario de VS Code. Parece que en el Marketplace y los plugins ocurre todo el típico ruido corporativo
    • No entiendo por qué no hay ni una sola captura de pantalla que muestre cómo se ve, ni en el repositorio ni en la página del Marketplace. ¿Se me pasó algo?
  • Curiosamente, alguien en Reddit notó hace 7 meses los cambios sospechosos en esta extensión [1]. En código abierto, la ofuscación suele ser una señal de alerta extrema
    Microsoft debería replantearse seriamente el modelo de seguridad de las extensiones de VS Code. Con el enfoque actual, se volvió un objetivo demasiado rentable
    Aunque bloqueen a un desarrollador, vendrán 10 extensiones maliciosas nuevas detrás
    [1] https://www.reddit.com/r/vscode/comments/1eq40o2/has_the_mat...

    • Hay que tener cuidado con lo que uno desea
      VS Code puede ser casi el mejor producto que ha sacado Microsoft, y una gran razón de eso es el Marketplace de extensiones
      Si Microsoft endurece más el control del Marketplace, es muy probable que la calidad de VS Code empeore
      El razonamiento es este: si la revisión del Marketplace se vuelve más estricta, sube la barrera de entrada y baja el número total de extensiones. Si hay menos extensiones, Microsoft tendrá más incentivos para meter funciones directamente en el núcleo de VS Code. Cuantas más funciones agregue Microsoft, más pesado se volverá VS Code
      En última instancia, aumentar las auditorías de seguridad del Marketplace de extensiones podría llevar a un VS Code más pesado
      Claro que me gustaría que el Marketplace de extensiones tuviera mejores controles de seguridad, pero no confío en que Microsoft lo haga de una manera que realmente mejore el producto para los usuarios reales
  • Después de leer sobre el tema, esta persona parece inestable. Literalmente parece creer que los códigos de color hexadecimales son de su propiedad
    Técnicamente tampoco es muy bueno, e hizo que toda la gente competente se fuera
    No uso su software, pero espero que supere pronto este episodio y aprenda que él no inventó Material

    • Pantone probablemente querría decir algo al respecto
    • Alguien lo describió como lunatic, pero esto es un problema de seguridad. No deberíamos simplemente asumir que alguien que logra meter código malicioso en los IDE de desarrolladores de todo el mundo es inestable o está loco
      Más bien habría que considerarlo astuto y engañoso, o incluso un agente de una agencia de inteligencia
      Tener ese tipo de sospechas sobre alguien que mete código malicioso en herramientas de desarrollo no es paranoia
  • Alguien subió una extensión alternativa, Material Theme (But I Won't Sue You)
    https://marketplace.visualstudio.com/items?itemName=t3dotgg....

    • Como el autor original hablaba mucho sobre los costos de desarrollo/mantenimiento, me dio curiosidad qué demonios había que mantener
      Cloné el repositorio https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you y lo revisé; el resumen de líneas de código es este
      CSS: 2 archivos, 142 líneas, 119 líneas de código, 0 líneas de comentarios, 23 líneas en blanco
      TypeScript: 32 archivos, 2026 líneas, 1650 líneas de código, 243 líneas de comentarios, 133 líneas en blanco
      HTML: 2 archivos, 59 líneas, 49 líneas de código, 1 línea de comentario, 9 líneas en blanco
      Total: 36 archivos, 2227 líneas, 1818 líneas de código, 244 líneas de comentarios, 165 líneas en blanco
      De eso, 622 líneas de TypeScript son definiciones de colores hexadecimales por variante dentro de scripts/generator/settings/specific
      El resto también parece en gran parte boilerplate; por ejemplo, las 599 líneas de scripts/generator/color-set.ts
      Así que la pregunta sigue en pie: ¿qué hay que mantener exactamente para que tome más de unos minutos?
      He publicado y mantenido durante años proyectos open source mucho más sustanciales, pero nunca esperé contribuciones económicas
    • Parece que quien hizo la extensión alternativa es el YouTuber técnico theo (https://m.youtube.com/@t3dotgg)
    • Oh, ese soy yo. Francamente, no me sorprende que este tipo se haya vuelto un poco loco
  • ¿Qué demonios tiene el tema Material para hacer que la gente se ponga así? Hace unos 5 años pasó algo parecido en el mundo de IntelliJ
    Aunque aquello no era literalmente solo colores

    • Parece que eso pasa con cualquier cosa que sea popular y tenga potencial de monetización
  • ¿Alguien puede señalar en el repositorio dónde estaba la parte maliciosa? No la encuentro
    Encontré el código ofuscado aquí: https://web.archive.org/web/20250226020241/https://github.co...

  • Es realmente raro que esta persona haya aceptado contribuciones de otros y luego lo haya cambiado a código cerrado. No parece correcto, aunque no soy experto en derechos de autor

    • En términos generales, se suele asumir que las contribuciones se entregan bajo la licencia vigente en ese momento
      El mantenedor puede cambiar la licencia, pero eso no afecta las contribuciones anteriores. Básicamente, todo lo anterior al cambio de licencia conserva la licencia anterior
      Esta es la razón por la que se puede hacer un fork de software popular aunque cambie de licencia
      Para cambiar la licencia de forma retroactiva se necesita el consentimiento de los contribuidores, o un documento que otorgue ese derecho
      Un acuerdo de licencia de contribuidor (CLA) puede darle al mantenedor el derecho de relicenciar a voluntad incluso lo anterior, pero no todos los CLA hacen eso
      Entre los casos famosos de software que cambió de licencia están Redis y Terraform. Incluso en esos casos, el software ya distribuido sigue estando disponible bajo la licencia anterior, y esa licencia anterior permite hacer forks
    • Para empezar, ¿Material siquiera era obra de él?
    • Es parecido a muchos proyectos open source administrados principalmente por empresas, como Red Hat o Terraform, que pasan a ser no comerciales
  • Me gusta que hoy la mayoría de las herramientas ya traigan por defecto temas bastante bien hechos
    Si quieres reducir este tipo de riesgos y minimizar las extensiones/add-ons que instalas, es una opción bastante realista
    Por supuesto, también es bueno que el software pueda personalizarse visualmente hasta este punto y que, según el caso, pueda mejorar la usabilidad y la accesibilidad
    Aun así, deberían atenderse las solicitudes de funciones relacionadas con restricción de permisos

    • Me sorprende que un tema pueda representar un riesgo de seguridad
      Evidentemente no parece estar compuesto solo por simples códigos de color y definiciones
      Probablemente habría que endurecer más el sistema de temas