Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El dotnet restore comando , que restaura las dependencias de un proyecto, ahora genera advertencias de vulnerabilidad de seguridad para paquetes transitivos de forma predeterminada cuando el proyecto tiene como destino .NET 10 o una versión posterior.
Comportamiento anterior
NuGetAudit se introdujo en .NET 8 para emitir advertencias para paquetes con vulnerabilidades de seguridad conocidas.
De forma predeterminada, solo se auditaron las referencias directas del paquete; sin embargo, era posible cambiar la NuGetAuditMode propiedad para incluir todos los paquetes.
En una versión preliminar de .NET 9, el valor predeterminado de NuGetAuditMode se cambió a all para todos los proyectos y este cambio se reviertó a direct en el SDK de .NET 9.0.101.
Nuevo comportamiento
Cuando los proyectos tienen como destino .NET 10 o superior, el valor predeterminado de NuGetAuditMode es all si no se ha establecido explícitamente.
Esta configuración significa que los paquetes transitivos (dependencias de paquetes a los que hace referencia el proyecto directamente) con vulnerabilidades conocidas ahora hacen que se notifiquen advertencias.
Si el proyecto trata las advertencias como errores, este comportamiento puede provocar errores de restauración.
Si el proyecto tiene como destino .NET 9 o inferior, el valor predeterminado NuGetAuditMode de sigue siendo direct.
Versión introducida
.NET 10 Preview 3
Tipo de cambio disruptivo
Este cambio es un cambio de comportamiento .
Motivo del cambio
Los paquetes con vulnerabilidades conocidas podrían hacer que la aplicación se pueda aprovechar, incluso si el proyecto no hace referencia directamente o usa directamente el paquete vulnerable.
Acción recomendada
Para evitar que las advertencias de auditoría se traten como errores, incluso cuando se usa
<TreatWarningsAsErrors>, puede usar<WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904;$(WarningsNotAsErrors)</WarningsNotAsErrors>.Use herramientas como
dotnet nuget whypara encontrar el paquete de nivel superior que provocó que el paquete transitivo con la vulnerabilidad conocida se incluya y intente actualizarlo para ver si la vulnerabilidad transitiva desaparece. Si no es así, promueva el paquete transitivo a un paquete de nivel superior agregando unPackageReferenceelemento para él y actualícelo a una versión más reciente.Si desea suprimir un aviso específico, puede agregar
<NuGetAuditSuppress Include="url" />elemento al archivo de proyecto, dondeurles la dirección URL notificada en el mensaje de advertencia de NuGet.<ItemGroup> <NuGetAuditSuppress Include="url" /> </ItemGroup>Si solo desea ser advertido de referencias directas a paquetes con vulnerabilidades conocidas, puede establecer
<NuGetAuditMode>endirecten el archivo de proyecto.<PropertyGroup> <NuGetAuditMode>direct</NuGetAuditMode> </PropertyGroup>