NuGet has crossed 895 billion package downloads and hosts over 500,000 unique packages — making it one of the largest package ecosystems in the world. For .NET developers, this scale creates a massive attack surface. In 2026, three CVEs landed in Microsoft's own packages (CVE-2026-40372 CVSS 9.1, CVE-2026-32175, CVE-2026-33116), nine NuGet packages planted time-delayed logic bombs in industrial control systems, and a crypto-theft campaign ran undetected for four months. This guide breaks down every major 2026 incident and shows you exactly how to lock down your NuGet dependency pipeline.
NuGet a dépassé 895 milliards de téléchargements et héberge plus de 500 000 packages uniques — ce qui en fait l'un des plus grands écosystèmes de packages au monde. Pour les développeurs .NET, cette échelle crée une surface d'attaque considérable. En 2026, trois CVE ont touché les packages Microsoft eux-mêmes (CVE-2026-40372 CVSS 9.1, CVE-2026-32175, CVE-2026-33116), neuf packages NuGet ont planté des bombes logiques dans des systèmes de contrôle industriel, et une campagne de vol de cryptomonnaies a fonctionné sans détection pendant quatre mois. Ce guide décrypte chaque incident majeur de 2026 et vous montre comment sécuriser votre pipeline de dépendances NuGet.
CVE-2026-40372: ASP.NET Core DataProtection — Forged Auth Cookies (CVSS 9.1)
CVE-2026-40372 : ASP.NET Core DataProtection — Cookies d'Auth Falsifiés (CVSS 9.1)
Published on April 21, 2026, CVE-2026-40372 is the most critical .NET vulnerability of the year. A regression introduced in Microsoft.AspNetCore.DataProtection versions 10.0.0 through 10.0.6 caused the managed authenticated encryptor to compute its HMAC validation tag over the wrong bytes of the payload, then discard the computed hash in certain code paths. The result: an attacker can forge payloads that pass DataProtection's authenticity checks and decrypt previously-protected content.
Publiée le 21 avril 2026, CVE-2026-40372 est la vulnérabilité .NET la plus critique de l'année. Une régression introduite dans Microsoft.AspNetCore.DataProtection versions 10.0.0 à 10.0.6 a causé un calcul erroné du tag HMAC, puis son rejet dans certains chemins de code. Résultat : un attaquant peut forger des payloads qui passent les vérifications d'authenticité de DataProtection et déchiffrer des contenus précédemment protégés.
What is at risk? DataProtection protects authentication cookies, anti-forgery tokens, session state, and any payload protected via IDataProtector. Successful exploitation allows unauthenticated attackers to impersonate any user — including administrators — by crafting a forged cookie that passes ASP.NET Core's signature check. The vulnerability is classified as CWE-347 (Improper Verification of Cryptographic Signature).
Qu'est-ce qui est en danger ? DataProtection protège les cookies d'authentification, les jetons anti-falsification, l'état de session et tout payload protégé via IDataProtector. Une exploitation réussie permet à des attaquants non authentifiés d'usurper l'identité de n'importe quel utilisateur — y compris les administrateurs — en forgant un cookie qui passe la vérification de signature ASP.NET Core. La vulnérabilité est classée CWE-347 (Vérification Incorrecte de Signature Cryptographique).
Conditions for exploitation: The application must reference Microsoft.AspNetCore.DataProtection version 10.0.6 from NuGet (the affected binary must actually load at runtime) and run on Linux, macOS, or any non-Windows OS. Windows deployments using the Windows-native DPAPI backend are not affected by the same code path, but any container-based, cloud-native, or Linux-hosted ASP.NET Core 10 app is in scope.
Conditions d'exploitation : L'application doit référencer Microsoft.AspNetCore.DataProtection version 10.0.6 depuis NuGet (le binaire affecté doit être chargé au runtime) et fonctionner sur Linux, macOS ou tout OS non-Windows. Les déploiements Windows utilisant le backend DPAPI natif Windows ne sont pas affectés, mais toute application ASP.NET Core 10 conteneurisée, cloud-native ou hébergée sur Linux est concernée.
Remediation steps:
Étapes de correction :
# 1. Update the package in your .csproj
dotnet add package Microsoft.AspNetCore.DataProtection --version 10.0.7
# 2. Verify the update
dotnet list package | grep DataProtection
# 3. Rebuild and redeploy
dotnet publish -c Release
# 4. MANDATORY: rotate your Data Protection key ring
# Keys generated while 10.0.6 was loaded may have been compromised.
# Use IDataProtectionBuilder.PersistKeysToFileSystem (or AzureStorage/Redis)
# and delete keys created between April 14 and April 22, 2026.
dotnet tool run data-protection-key-manager --revoke-key [key-id]
Microsoft released ASP.NET Core 10.0.7 as an emergency out-of-band patch on April 22, 2026. Organizations should also invalidate any forged tokens that may have been issued before remediation by revoking the Data Protection key ring entirely. This invalidates all existing sessions, but it is the only way to ensure no attacker retains a forged cookie from the vulnerable window.
Microsoft a publié ASP.NET Core 10.0.7 comme patch d'urgence hors-bande le 22 avril 2026. Les organisations doivent également invalider les jetons potentiellement falsifiés avant la correction en révoquant intégralement le key ring Data Protection. Cela invalide toutes les sessions existantes, mais c'est le seul moyen de s'assurer qu'aucun attaquant ne conserve un cookie falsifié de la fenêtre vulnérable.
May 2026 Patch Tuesday: CVE-2026-32175 & CVE-2026-33116
Patch Tuesday Mai 2026 : CVE-2026-32175 & CVE-2026-33116
The May 12, 2026 Patch Tuesday brought two additional .NET vulnerabilities affecting multiple runtime versions:
Le Patch Tuesday du 12 mai 2026 a apporté deux vulnérabilités .NET supplémentaires affectant plusieurs versions du runtime :
CVE-2026-32175 — .NET Core Tampering Vulnerability: This vulnerability allows an attacker with local access to tamper with .NET Core runtime binaries, potentially altering application behavior or introducing malicious code into trusted execution environments. While it requires local access (lower exploit probability than CVE-2026-40372), it is particularly concerning for shared hosting, container orchestration environments, and CI/CD build agents where multiple users or processes share the same runtime.
CVE-2026-32175 — Vulnérabilité de Falsification .NET Core : Cette vulnérabilité permet à un attaquant avec accès local de falsifier les binaires du runtime .NET Core, modifiant potentiellement le comportement des applications ou introduisant du code malveillant dans des environnements d'exécution de confiance. Bien qu'elle nécessite un accès local (probabilité d'exploitation plus faible que CVE-2026-40372), elle est particulièrement préoccupante pour les environnements d'hébergement partagé, les orchestrateurs de conteneurs et les agents de build CI/CD où plusieurs utilisateurs partagent le même runtime.
CVE-2026-33116 — System.Security.Cryptography.Xml DoS: A denial-of-service vulnerability affecting the System.Security.Cryptography.Xml NuGet package, published in April 2026. Affects .NET 8.0.0–8.0.2, .NET 9.0.0–9.0.14, and .NET 10.0.0–10.0.5. Any application that processes signed XML documents (e.g., SAML assertions, XML digital signatures) is exposed. An attacker who can send crafted XML payloads can exhaust server resources and cause service outages.
CVE-2026-33116 — DoS System.Security.Cryptography.Xml : Une vulnérabilité de déni de service affectant le package NuGet System.Security.Cryptography.Xml, publiée en avril 2026. Affecte .NET 8.0.0–8.0.2, .NET 9.0.0–9.0.14 et .NET 10.0.0–10.0.5. Toute application traitant des documents XML signés (par ex. assertions SAML, signatures XML numériques) est exposée. Un attaquant capable d'envoyer des payloads XML crafted peut épuiser les ressources serveur et causer des interruptions de service.
# Check which .NET SDK and runtime you're running
dotnet --version
dotnet --list-runtimes
# Update all vulnerable packages in solution
dotnet list package --vulnerable
# Fix individual packages
dotnet add package System.Security.Cryptography.Xml --version 8.0.3 # .NET 8
dotnet add package System.Security.Cryptography.Xml --version 9.0.15 # .NET 9
dotnet add package System.Security.Cryptography.Xml --version 10.0.6 # .NET 10
Malicious NuGet Packages in 2025–2026: Logic Bombs, ICS Sabotage & Crypto Theft
Packages NuGet Malveillants en 2025–2026 : Bombes Logiques, Sabotage ICS & Vol de Cryptomonnaies
While NuGet's overall malicious package count dropped significantly in 2025 (just 2 malicious packages detected in the first 10 months, down from 34 in all of 2024, thanks to mandatory two-factor authentication for maintainers), sophisticated targeted campaigns continued. Two campaigns stand out:
Bien que le nombre total de packages NuGet malveillants ait considérablement diminué en 2025 (seulement 2 packages malveillants détectés dans les 10 premiers mois, contre 34 en 2024 entier, grâce à l'authentification à deux facteurs obligatoire pour les mainteneurs), des campagnes ciblées sophistiquées ont continué. Deux campagnes se distinguent :
ICS/PLC Logic Bombs (shanhai666 campaign): Security researchers uncovered 9 malicious NuGet packages published between 2023 and 2024 by a user named "shanhai666." These packages impersonated legitimate .NET libraries for industrial automation and SCADA integration. They collectively received 9,488 downloads before detection. The payloads were time-delayed: logic bombs designed to activate years after installation, capable of corrupting database operations and disrupting industrial control systems (PLCs). The sophistication of these packages — legitimate-looking API surfaces, gradual behavior activation, ICS-specific targets — represents a new threat tier for the .NET ecosystem.
Bombes logiques ICS/PLC (campagne shanhai666) : Des chercheurs en sécurité ont découvert 9 packages NuGet malveillants publiés entre 2023 et 2024 par un utilisateur nommé "shanhai666". Ces packages usurpaient l'identité de bibliothèques .NET légitimes pour l'automatisation industrielle et l'intégration SCADA. Ils ont cumulé 9 488 téléchargements avant d'être détectés. Les payloads étaient à délai : des bombes logiques conçues pour s'activer des années après l'installation, capables de corrompre des bases de données et de perturber des systèmes de contrôle industriels (PLC). La sophistication de ces packages — surfaces API d'apparence légitime, activation comportementale progressive, cibles ICS spécifiques — représente un nouveau niveau de menace pour l'écosystème .NET.
Crypto Theft Campaign (July–October 2025): Fourteen malicious NuGet packages impersonating legitimate cryptocurrency and OAuth tooling libraries ran undetected for four months. The campaign stole cryptocurrency wallet credentials and OAuth access tokens from developer machines. Unlike the ICS campaign, these packages activated immediately on install via init.ps1 scripts (NuGet's equivalent of npm's postinstall hooks) — a reminder that NuGet's package lifecycle scripts are also a supply chain attack vector.
Campagne de Vol de Cryptomonnaies (juillet–octobre 2025) : Quatorze packages NuGet malveillants imitant des bibliothèques légitimes de cryptomonnaies et d'OAuth ont fonctionné sans détection pendant quatre mois. La campagne a volé des identifiants de portefeuilles crypto et des jetons d'accès OAuth depuis les machines des développeurs. Contrairement à la campagne ICS, ces packages s'activaient immédiatement à l'installation via des scripts init.ps1 (l'équivalent NuGet des hooks postinstall d'npm) — rappelant que les scripts du cycle de vie des packages NuGet sont aussi un vecteur d'attaque supply chain.
NuGetAudit 2.0: Your First Line of Defense in 2026
NuGetAudit 2.0 : Votre Première Ligne de Défense en 2026
NuGet Audit, introduced in NuGet 6.8 / .NET SDK 8.0.100 (November 2023), has matured significantly in 2026. The key changes for .NET 10 that every developer needs to know:
NuGet Audit, introduit dans NuGet 6.8 / .NET SDK 8.0.100 (novembre 2023), a considérablement évolué en 2026. Les changements clés pour .NET 10 que tout développeur doit connaître :
Breaking change: transitive packages audited by default on .NET 10. When your project targets net10.0 or higher, NuGetAuditMode now defaults to all (previously direct). This means dotnet restore will warn on vulnerabilities in all transitive dependencies — not just the packages you directly reference. On older TFMs, you must opt in:
Changement cassant : les packages transitifs sont audités par défaut sur .NET 10. Quand votre projet cible net10.0 ou supérieur, NuGetAuditMode prend maintenant la valeur all par défaut (contre direct auparavant). Cela signifie que dotnet restore signalera les vulnérabilités dans toutes les dépendances transitives — pas seulement les packages que vous référencez directement. Sur les TFM plus anciens, vous devez opt-in :
<!-- In your Directory.Build.props or .csproj -->
<PropertyGroup>
<!-- Audit ALL packages (direct + transitive) — mandatory on net10.0, opt-in on older TFMs -->
<NuGetAuditMode>all</NuGetAuditMode>
<!-- Fail the build if High or Critical vulnerabilities are found -->
<NuGetAuditLevel>high</NuGetAuditLevel>
<!-- Make audit warnings into build errors (NU1901–NU1904) -->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsAsErrors>
</PropertyGroup>
The audit data source is the GitHub Advisory Database (GHSA), fetched via nuget.org's vulnerability endpoint at restore time. If you run in an air-gapped environment or use a private feed, you can point to a data-only feed: https://data.nuget.org/v3/index.json.
La source de données d'audit est la GitHub Advisory Database (GHSA), récupérée via l'endpoint de vulnérabilités de nuget.org au moment du restore. Si vous fonctionnez dans un environnement air-gappé ou avec un flux privé, vous pouvez pointer vers un flux data-only : https://data.nuget.org/v3/index.json.
# List all vulnerable packages (direct + transitive)
dotnet list package --vulnerable
# Find which top-level package pulls in a vulnerable transitive dep
dotnet nuget why MyProject.csproj System.Security.Cryptography.Xml
# Update a transitive dependency by promoting it to top-level
dotnet add package System.Security.Cryptography.Xml --version 10.0.6
# Suppress a false positive with justification (NuGetAuditSuppress, .NET 10+ SDK)
# Add to Directory.Packages.props:
# <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-xxxx" Justification="Not reachable in our usage" />
Complete NuGet Security Hardening Guide for 2026
Guide Complet de Durcissement Sécurité NuGet pour 2026
Beyond running NuGetAudit, a production-grade .NET security posture in 2026 requires several complementary controls:
Au-delà de l'exécution de NuGetAudit, une posture de sécurité .NET de niveau production en 2026 nécessite plusieurs contrôles complémentaires :
1. Use Central Package Management (CPM) with version pinning. Store all package versions in Directory.Packages.props at the repo root. This creates a single source of truth for versions and eliminates version drift across projects in the same solution:
1. Utilisez la Gestion Centralisée des Packages (CPM) avec épinglage de versions. Stockez toutes les versions de packages dans Directory.Packages.props à la racine du dépôt. Cela crée une source de vérité unique pour les versions et élimine la dérive de version entre les projets d'une même solution :
<!-- Directory.Packages.props -->
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<NuGetAuditMode>all</NuGetAuditMode>
<NuGetAuditLevel>high</NuGetAuditLevel>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Microsoft.AspNetCore.DataProtection" Version="10.0.7" />
<PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.6" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<!-- All packages pinned here —> no floating versions -->
</ItemGroup>
</Project>
2. Add a CI/CD audit gate. Block merges and deployments when vulnerable packages are found:
2. Ajoutez une porte d'audit en CI/CD. Bloquez les merges et déploiements quand des packages vulnérables sont détectés :
# .github/workflows/nuget-security.yml
name: NuGet Security Audit
on: [push, pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.x'
- name: Restore (with audit)
run: dotnet restore --verbosity normal
# NU1901–NU1904 warnings become errors via Directory.Build.props
- name: List vulnerable packages
run: dotnet list package --vulnerable --include-transitive
# For reporting purposes even if restore already fails
3. Use dotnet-outdated to track stale packages. Outdated packages are the most common path to vulnerable dependencies. The dotnet-outdated tool scans your entire solution for packages that have newer versions available:
3. Utilisez dotnet-outdated pour suivre les packages obsolètes. Les packages obsolètes sont le chemin le plus courant vers des dépendances vulnérables. L'outil dotnet-outdated scanne toute votre solution pour les packages ayant des versions plus récentes disponibles :
# Install
dotnet tool install -g dotnet-outdated-tool
# Scan solution (upgrade-only — excludes pre-release)
dotnet outdated --upgrade:Auto MySolution.sln
# Check only packages with newer stable versions (no pre-release)
dotnet outdated --pre-release Never
# Output as JSON for CI consumption
dotnet outdated --output json --output-filename outdated.json
4. Configure a private NuGet feed for supply chain isolation. Use Azure Artifacts, GitHub Packages, or Artifactory as an upstream proxy. Enable package vetting (manual approval before packages enter your feed) for production-critical dependencies. Configure your nuget.config to use only your private feed, blocking direct access to nuget.org:
4. Configurez un flux NuGet privé pour l'isolation de la supply chain. Utilisez Azure Artifacts, GitHub Packages ou Artifactory comme proxy upstream. Activez le vetting des packages (approbation manuelle avant qu'un package entre dans votre flux) pour les dépendances critiques en production. Configurez votre nuget.config pour utiliser uniquement votre flux privé, bloquant l'accès direct à nuget.org :
<!-- nuget.config -->
<configuration>
<packageSources>
<clear /> <!-- removes nuget.org from sources -->
<add key="MyPrivateFeed" value="https://pkgs.dev.azure.com/myorg/_packaging/myFeed/nuget/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="MyPrivateFeed">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
5. Enable package source mapping. Package Source Mapping (available since NuGet 6.0) pins specific package IDs to specific feeds, preventing dependency confusion attacks where a package name on nuget.org shadows a private package name. It is one of the most underused security features in the .NET ecosystem.
5. Activez le mappage de source de packages. Le Package Source Mapping (disponible depuis NuGet 6.0) associe des IDs de packages spécifiques à des flux spécifiques, empêchant les attaques par confusion de dépendances où un nom de package sur nuget.org écrase un nom de package privé. C'est l'une des fonctionnalités de sécurité les plus sous-utilisées de l'écosystème .NET.
Frequently Asked Questions
Questions Fréquentes
Is my app vulnerable to CVE-2026-40372 if I'm on Windows?
Mon application est-elle vulnérable à CVE-2026-40372 si je suis sur Windows ?
Probably not from the same code path. The vulnerability manifests in the managed (non-Windows) HMAC implementation path. Windows deployments using the Windows Data Protection API (DPAPI) backend typically follow a different code path and are not affected. However, if your Windows app explicitly sets the managed backend (e.g., via UseCryptographicAlgorithms() or you're using DataProtection in a cross-platform library), you should still patch to 10.0.7 and rotate keys.
Probablement pas via le même chemin de code. La vulnérabilité se manifeste dans le chemin d'implémentation HMAC managé (non-Windows). Les déploiements Windows utilisant le backend Windows Data Protection API (DPAPI) suivent généralement un chemin différent et ne sont pas affectés. Toutefois, si votre application Windows définit explicitement le backend managé (via UseCryptographicAlgorithms() par exemple) ou si vous utilisez DataProtection dans une bibliothèque cross-platform, vous devez quand même patcher vers 10.0.7 et effectuer une rotation des clés.
How do I find transitive NuGet package vulnerabilities?
Comment trouver les vulnérabilités des packages NuGet transitifs ?
Use dotnet list package --vulnerable --include-transitive. For .NET 10+ projects, transitive auditing is now the default during dotnet restore. For older TFMs, add <NuGetAuditMode>all</NuGetAuditMode> to your Directory.Build.props. Once a transitive vulnerability is identified, use dotnet nuget why to trace which top-level package pulls it in, then either upgrade that package or promote the transitive dep to a top-level reference with a safe version.
Utilisez dotnet list package --vulnerable --include-transitive. Pour les projets .NET 10+, l'audit des packages transitifs est maintenant la valeur par défaut lors de dotnet restore. Pour les TFM plus anciens, ajoutez <NuGetAuditMode>all</NuGetAuditMode> dans votre Directory.Build.props. Une fois une vulnérabilité transitive identifiée, utilisez dotnet nuget why pour trouver le package top-level qui l'importe, puis mettez à jour ce package ou promouvez la dépendance transitive en référence top-level avec une version sûre.
Does NuGetAudit catch malicious packages like the shanhai666 ICS campaign?
NuGetAudit détecte-t-il les packages malveillants comme la campagne ICS shanhai666 ?
No — and this is a critical gap. NuGetAudit checks packages against the GitHub Advisory Database (GHSA), which only lists known, reported vulnerabilities. Newly published malicious packages that haven't been reported to GHSA yet will not trigger any warnings. The ICS logic-bomb packages ran for months before being reported. For behavioral detection of malicious packages, you need complementary tools like Socket, Phylum, or a private feed with package vetting.
Non — et c'est une lacune critique. NuGetAudit vérifie les packages par rapport à la GitHub Advisory Database (GHSA), qui ne liste que les vulnérabilités connues et reportées. Les packages malveillants nouvellement publiés qui n'ont pas encore été signalés à GHSA ne déclencheront aucun avertissement. Les packages à bombe logique ICS ont fonctionné pendant des mois avant d'être signalés. Pour la détection comportementale de packages malveillants, vous avez besoin d'outils complémentaires comme Socket, Phylum ou un flux privé avec vetting des packages.
What is Package Source Mapping and why does it matter for security?
Qu'est-ce que le Package Source Mapping et pourquoi est-il important pour la sécurité ?
Package Source Mapping (NuGet 6.0+) explicitly declares which NuGet feed each package must come from. Without it, NuGet can resolve a package from any configured source, making dependency confusion attacks possible: an attacker publishes a package with the same name as your internal package on nuget.org with a higher version number, and NuGet fetches the malicious public version instead. With Package Source Mapping, internal package names are pinned to your private feed, completely blocking this attack vector.
Le Package Source Mapping (NuGet 6.0+) déclare explicitement de quel flux NuGet chaque package doit provenir. Sans lui, NuGet peut résoudre un package depuis n'importe quelle source configurée, rendant les attaques par confusion de dépendances possibles : un attaquant publie un package du même nom que votre package interne sur nuget.org avec un numéro de version plus élevé, et NuGet récupère la version publique malveillante à la place. Avec le Package Source Mapping, les noms de packages internes sont associés à votre flux privé, bloquant complètement ce vecteur d'attaque.
How do I rotate ASP.NET Core Data Protection keys after CVE-2026-40372?
Comment faire une rotation des clés ASP.NET Core Data Protection après CVE-2026-40372 ?
The key ring rotation procedure depends on where you store your keys. For file system storage, delete the XML key files in the key ring directory and let ASP.NET Core regenerate them on next startup (this logs out all users). For Azure Key Vault or Redis storage, use the respective management APIs to revoke keys created between April 14 and April 22, 2026 (the window when 10.0.6 was in circulation). Always verify that your Microsoft.AspNetCore.DataProtection package is updated to 10.0.7+ before rotating keys, or new keys will be generated by the still-vulnerable library.
La procédure de rotation du key ring dépend de l'emplacement de stockage de vos clés. Pour le stockage système de fichiers, supprimez les fichiers XML de clés dans le répertoire du key ring et laissez ASP.NET Core les regénérer au prochain démarrage (cela déconnecte tous les utilisateurs). Pour le stockage Azure Key Vault ou Redis, utilisez les API de gestion respectives pour révoquer les clés créées entre le 14 et le 22 avril 2026 (la fenêtre pendant laquelle 10.0.6 était en circulation). Vérifiez toujours que votre package Microsoft.AspNetCore.DataProtection est mis à jour vers 10.0.7+ avant de faire la rotation des clés, sinon les nouvelles clés seront générées par la bibliothèque encore vulnérable.
Monitor Your NuGet & .NET Dependencies Automatically
Surveillez Vos Dépendances NuGet & .NET Automatiquement
CVE OptiBot scans your *.csproj and packages.lock.json files daily against the full NVD and GHSA databases. Get alerted the moment a CVE hits any of your .NET packages — before it becomes a production incident. Covers NuGet, npm, PyPI, Composer and more across all your projects.
CVE OptiBot scanne vos fichiers *.csproj et packages.lock.json quotidiennement contre les bases NVD et GHSA complètes. Soyez alerté dès qu'une CVE touche l'un de vos packages .NET — avant que cela devienne un incident en production. Couvre NuGet, npm, PyPI, Composer et plus encore sur tous vos projets.