Skip to content

Conversation

@bart-vmware
Copy link
Member

@bart-vmware bart-vmware commented Aug 6, 2025

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 for System.IdentityModel.Tokens.Jwt): Bumped both from 5.2.2 to 7.7.1

The warnings caused by KubernetesClient are suppressed, because there's no non-breaking solution. The lowest version without transitive vulnerabilities no longer targets netstandard2.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

  • Your code complies with our Coding Style.
  • You've updated unit and/or integration tests for your change, where applicable.
  • You've updated documentation for your change, where applicable.
    If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
  • There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
  • You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

@bart-vmware bart-vmware force-pushed the fix-transitive-vulnerable-dependencies-3x branch 2 times, most recently from 8e48ca2 to 4275035 Compare August 7, 2025 10:45
Copy link
Contributor

@thompson-tomo thompson-tomo left a 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.

@bart-vmware
Copy link
Member Author

bart-vmware commented Aug 7, 2025

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.

@bart-vmware bart-vmware added ReleaseLine/4.x Identified as a feature/fix for the 4.x release line ReleaseLine/3.x Identified as a feature/fix for the 3.x release line and removed ReleaseLine/4.x Identified as a feature/fix for the 4.x release line labels Aug 7, 2025
@bart-vmware bart-vmware added this to the 3.3.0 milestone Aug 7, 2025
@bart-vmware bart-vmware force-pushed the fix-transitive-vulnerable-dependencies-3x branch from 4275035 to 7ef5b90 Compare August 7, 2025 12:10
@bart-vmware bart-vmware marked this pull request as ready for review August 7, 2025 14:03
@bart-vmware bart-vmware requested a review from TimHess August 7, 2025 14:03
Base automatically changed from centralize-versions-3x to 3.x August 11, 2025 13:33
@bart-vmware bart-vmware force-pushed the fix-transitive-vulnerable-dependencies-3x branch from 7ef5b90 to d03beba Compare August 11, 2025 13:56
@sonarqubecloud
Copy link

Copy link
Member

@TimHess TimHess left a 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

@bart-vmware bart-vmware merged commit 465dce4 into 3.x Aug 13, 2025
35 of 36 checks passed
@bart-vmware bart-vmware deleted the fix-transitive-vulnerable-dependencies-3x branch August 13, 2025 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ReleaseLine/3.x Identified as a feature/fix for the 3.x release line

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants