-
Notifications
You must be signed in to change notification settings - Fork 252
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
Signing: macOS's distrust model overrides custom contextual trust #11986
Comments
@dtivel Is there a proposal for an action that we're going to take on this? |
@nkolev92, no, not at this time. |
I would opt for this to be explicitly documented in the trusted signers section of the NuGet documentation. I can imagine that there are a lot of people using maui for example on a macOs build server that trust on the documentation that the trusted signers just works. Is there a reason why this gets a priority 2 label, it can result in serious security issues? |
NuGet signed package verification is not supported on macOS and is disabled by default. See https://learn.microsoft.com/dotnet/core/tools/nuget-signed-package-verification#macos |
Also see the note for |
NuGet Product Used
dotnet.exe
Product Version
.NET 5 SDK+
Worked before?
No response
Impact
Other
Repro Steps & Context
In March 2022, I confirmed with Apple developer technical support that Apple had recently updated macOS's X.509 distrust model to explicitly distrust the intermediate certificate in the Symantec timestamping certificate chain used to timestamp NuGet.org packages.
When chain building the end certificate using macOS's default system trust store, the certificate chain validates successfully as trusted; however, the built chain terminates at the intermediate instead of the root.
When chain building the end certificate with custom trust anchors (including the timestamping root), macOS's distrust model overrides the implicit, transitive trust on the intermediate conferred by the explicit, contextual trust on the root. The end result is that certificate chain building fails with explicit distrust.
None of the solutions considered is attractive at this time, so we’re postponing macOS support for NuGet signed package verification during restore operations for the foreseeable future. Signed package verification is still possible using the
dotnet nuget verify
command.Relevant timestamping certificate chains:
Verbose Logs
No response
The text was updated successfully, but these errors were encountered: