Avvisi NuGet NU1901, NU1902, NU1903, NU1904
avviso NU1902: il pacchetto 'NuGet.Protocol' 5.11.2 presenta una vulnerabilità di gravità moderata nota, https://github.com/advisories/GHSA-g3q9-xf95-8hp5
Il codice di avviso cambia a seconda del livello di gravità della vulnerabilità noto:
Codice di avviso | Gravità |
---|---|
NU1901 | low |
NU1902 | moderato |
NU1903 | high |
NU1904 | critical |
Problema
Un pacchetto ripristinato per il progetto presenta una vulnerabilità nota.
Per altre informazioni, vedere la documentazione sui pacchetti di controllo.
Soluzione
È disponibile un post di blog con altre informazioni sulle azioni consigliate quando il progetto usa un pacchetto con una vulnerabilità nota e strumenti utili.
È probabile che l'aggiornamento a una versione più recente del pacchetto risolva l'avviso.
Se il progetto non fa riferimento direttamente al pacchetto (si tratta di un pacchetto transitivo), dotnet nuget why
può essere usato per comprendere quale pacchetto ha causato l'inserimento nel progetto.
È possibile controllare l'URL fornito dall'avviso sulla vulnerabilità per verificare quali versioni del pacchetto sono state corrette o controllare le origini dei pacchetti configurate per vedere quali versioni del pacchetto sono disponibili.
L'interfaccia utente di Gestione pacchetti di Visual Studio può mostrare quali versioni del pacchetto sono interessate e quali non presentano vulnerabilità note.
Se questi avvisi causano un errore di ripristino perché si usa TreatWarningsAsErrors
, è possibile aggiungere <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
per consentire a questi codici di rimanere come avvisi.
Se non si vuole ricevere una notifica delle vulnerabilità meno gravi di un livello con cui si ha familiarità, è possibile modificare il file di progetto e aggiungere una proprietà NuGetAuditLevel
MSBuild , con valore impostato su low
, moderate
high
, o critical
.
Ad esempio: <NuGetAuditLevel>high</NuGetAuditLevel>
.
Se si vuole eliminare un avviso specifico, aggiungere un elemento NuGetAuditSuppress di MSBuild.
Ad esempio, <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />
.
NuGetAuditSuppress
è disponibile in VS 17.11 e .NET 8.0.400 SDK per i progetti che usano e da VS 17.12 per i progetti che usano PackageReference
packages.config
.
Se non si vuole che NuGet verifichi la presenza di pacchetti con vulnerabilità note durante il ripristino, aggiungere <NuGetAudit>false</NuGetAudit>
all'interno di un <PropertyGroup>
nel file di progetto o un Directory.Build.props
file.
Se si vuole eseguire Il controllo NuGet nei computer di sviluppo, ma disabilitarlo nelle pipeline di integrazione continua, è possibile sfruttare le variabili di ambiente di importazione di MSBuild e creare una variabile di ambiente NuGetAudit impostata su false
nella definizione della pipeline.