Abstraktes Header-Bild in den Farben von tsjdev apps

Blogbeitrag

Sicherheitslücken in verwendeten NuGet-Paketen finden

Beim Aufräumen oder beim Review von .NET-Projekten gehört ein schneller Check auf bekannte Sicherheitslücken in NuGet-Paketen unbedingt dazu. Glücklicherweise liefert das .NET-CLI-Tool bereits einen einfachen Befehl, der dir genau das zeigt — auch transitive Abhängigkeiten.

Der Befehl

dotnet list <solution.sln|project.csproj> package --include-transitive --vulnerable

Alle Projekte in einer Solution prüfen:

dotnet list .\OpenWeatherMapSharp.sln package --include-transitive --vulnerable

Nur ein einzelnes Projekt prüfen:

dotnet list .\src\MyApp\MyApp.csproj package --include-transitive --vulnerable

--include-transitive sorgt dafür, dass auch Abhängigkeiten, die nicht direkt in deinem Projekt stehen (also transitive Pakete), mit geprüft werden. --vulnerable filtert auf bekannte, gemeldete Schwachstellen.

Was die Ausgabe bedeutet

Projekt / Target Framework: Es wird pro Projekt und pro Ziel-Framework (z. B. net9.0 oder netstandard2.0) angezeigt.

Paket oberster Ebene vs. Transitives Paket: Steht ein > vor dem Paketnamen, ist es ein direkt referenziertes Paket (top-level). Wenn „Transitives Paket“ steht, kommt das Paket indirekt.

Angefordert vs. Aufgelöst: Angefordert = das in deiner Projektdatei angegebene (oder von einem anderen Paket gewünschte) Versionsthema; Aufgelöst = die tatsächlich vom Resolver verwendete Version.

Schweregrad: z. B. Low, Moderate, High, Critical. Konzentriere dich zuerst auf High/Critical.

URL zur Empfehlung: Link zu der Sicherheits-Advisory (z. B. GHSA), dort stehen Details und oft Fix-Hinweise.

Tipps & Best Practices

Regelmäßig prüfen — mindestens vor Releases und als Teil des CI-Pipelines. Sicherheits-Advisories können jederzeit erscheinen.

Include transitive immer verwenden — viele Probleme kommen von indirekten Abhängigkeiten.

Central Package Management (Directory.Packages.props) nutzen, wenn du mehrere Projekte hast — Updates so zentral steuern.

Monitoring: Nutze zusätzlich Sicherheits-Scanner, Dependabot (GitHub) oder andere Tools, um automatische PRs für Updates zu erhalten.

Dokumentation: Wenn kein Fix möglich ist, dokumentiere die eingeschätzte Risikoauswirkung und ggf. Workarounds im Issue Tracker.

Fazit

Mit dotnet list <sln|proj> package --include-transitive --vulnerable bekommst du schnell einen klaren Überblick über bekannte Sicherheitslücken in deinen NuGet-Abhängigkeiten — genau so wie im Screenshot. Kombiniert mit einem festen CI-Check und einem standardisierten Update-Workflow reduziert das deine Angriffsfläche erheblich und macht Dependency-Management planbar.

Weiterempfehlen

Diesen Beitrag teilen

Wenn dir der Beitrag gefallen hat: gern weiterreichen. Gute Links dürfen sich ruhig schnell verbreiten.

Vorheriger/Nächster Beitrag

KI-Videos mit Sora-2 und .NET erstellen Vorheriger Beitrag KI-Videos mit Sora-2 und .NET erstellen Visual Studio 2026: Die neue Ära der IDE Nächster Beitrag Visual Studio 2026: Die neue Ära der IDE
Flags Quiz - Ein interaktives Flaggen-Quiz mit HTML, JavaScript und Bulma Flags Quiz - Ein interaktives Flaggen-Quiz mit HTML, JavaScript und Bulma Windows Terminal unter Windows 11 mit Oh-My-Posh einrichten Windows Terminal unter Windows 11 mit Oh-My-Posh einrichten Cronjobs in Azure Functions: Zeitgesteuerte Aufgaben mit dem TimerTrigger ausführen Cronjobs in Azure Functions: Zeitgesteuerte Aufgaben mit dem TimerTrigger ausführen GitHub Actions lokal testen mit Act GitHub Actions lokal testen mit Act
Lust auf ein kurzes digitales Hallo? Wenn du eine Idee teilen, eine Frage loswerden oder ein Projekt anschieben willst: mein Posteingang ist deutlich zuverlässiger als Brieftauben. apps@tsjdev-apps.de Mail schicken