-
Notifications
You must be signed in to change notification settings - Fork 171
Fix transitive vulnerable dependencies 3x #1562
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
8e48ca2 to
4275035
Compare
thompson-tomo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not be introducing explicit dependencies for things available natively from the framework. If necessary they could be conditional so that they are only added on the older TFM'S where necessary or another dependency has it as a dependency for all TFM'S.
At the same time transitive pinning in conjunction with central package packagement also helps simplify this.
This is not possible in most cases. *Base projects in Steeltoe 3.x reference netstandard, which doesn't provide these packages. The goal here is to ensure non-vulnerable dependencies with minimal customer impact, rather than redesigning how dependencies flow in 3.x. It's either this or dropping netstandard and net6.0 entirely, which has way more impact. See also the explanation at #1556. Our plan is to release a minor 3.x version that works with .NET 6 and .NET 8 (except for Stream/Messaging/Integration) and will be supported for one year. This should enable customers to transition to Steeltoe 4.0, where dependencies are handled in a different manner. |
4275035 to
7ef5b90
Compare
…ntityModel.Tokens.Jwt
7ef5b90 to
d03beba
Compare
|
TimHess
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't love the situation with KubernetesClient, but I agree that doing anything different would have an undesired ripple effect



Description
Adds explicit package references for transient packages that are reported as vulnerable.
Includes a GitHub Actions workflow to detect future vulnerabilities.
The higher versions mostly affect test dependencies, except for the following:
Microsoft.IdentityModel.JsonWebTokens(replacement forSystem.IdentityModel.Tokens.Jwt): Bumped both from 5.2.2 to 7.7.1The warnings caused by
KubernetesClientare suppressed, because there's no non-breaking solution. The lowest version without transitive vulnerabilities no longer targetsnetstandard2.0, which breaks upstream Steeltoe packages. Furthermore, that version has breaking API changes that are non-trivial to fix. The suppression works in the .NET CLI, but Visual Studio Package Manager ignores it.Quality checklist
If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.