Manifiestos de herramienta en la carpeta raíz

.NET ya no busca archivos de manifiesto de herramientas locales en la carpeta raíz de Windows, a menos que se invalide a través de la variable de entorno DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT. Este cambio no afecta a Linux o macOS.

Comportamiento anterior

Anteriormente, las herramientas locales del SDK de .NET comprobaron la carpeta raíz en todas las plataformas al buscar un manifiesto de herramienta. La búsqueda continuó desde el directorio actual hasta el árbol de directorio hasta la carpeta raíz hasta que encontró un manifiesto. En cada nivel, .NET busca el manifiesto de herramienta, denominado dotnet-tools.json, en una subcarpeta .config . En un sistema Windows, si no se encontró ningún otro manifiesto de herramienta, el SDK buscaba en última instancia un manifiesto de herramienta en C:\.config\dotnet-tools.json.

Comportamiento nuevo

.NET ya no busca en la carpeta raíz del árbol de directorios actual de forma predeterminada en Windows, a menos que se invalide a través de la variable de entorno DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT. DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT se establece en false de forma predeterminada.

Versión introducida

  • SDK de .NET 7.0.3xx
  • SDK de .NET 7.0.1xx
  • SDK de .NET 6.0.4xx
  • SDK de .NET 6.0.3xx
  • SDK de .NET 6.0.1xx
  • SDK de .NET 3.1.4xx

Tipo de cambio importante

Este es un cambio de comportamiento.

Motivo del cambio

Este cambio se realizó para abordar un problema de seguridad. Dado que todos los usuarios pueden crear archivos y carpetas en el directorio C:\ en Windows, los atacantes con pocos privilegios pueden secuestrar el archivo C:\.config\dotnet-tools.json. Cuando un administrador ejecuta un comando de herramienta dotnet, la herramienta podría, potencialmente, leer información de configuración malintencionada del archivo y descargar y ejecutar herramientas malintencionadas.

Para deshabilitar el nuevo comportamiento, establezca la variable de entorno DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT en true o 1.

Consulte también