Skip to content

[release/6.0] make sure OpenSSL is initialized before Tls13Supported code runs - #64252

Merged
safern merged 1 commit into
dotnet:release/6.0from
wfurt:sslInit6
Feb 7, 2022
Merged

[release/6.0] make sure OpenSSL is initialized before Tls13Supported code runs#64252
safern merged 1 commit into
dotnet:release/6.0from
wfurt:sslInit6

Conversation

@wfurt

@wfurtwfurt commented Jan 25, 2022

Copy link
Copy Markdown
Member

This back port of #62973

Fixes#61891

Customer Impact

Customer reported regression. When customer uses class System.Net.Security.CipherSuitesPolicy early in the process it will throw exception and it will also prevent ANY further usage of TLS 1.3 in that process.

The root cause is bad dependency of static constructors which won't initialize OpenSSL in time. TLS 1.3 detection will fail without initialized OpenSSL and the (failed) result will be stored in a static variable.

Regression

Yes, it was introduced in 6.0

Testing

Testing was manual as the behavior depends on loading native ship and sequence of operations - both happen before our test even start. I used the sample code from #62973 and debugger to verify that the property is properly set.

Risk

Small. This basically makes sure OpenSSL is initialized before we use it.

@wfurtwfurt added Servicing-consider Issue for next servicing release review area-System.Net.Security labels Jan 25, 2022
@wfurtwfurt added this to the 6.0.x milestone Jan 25, 2022
@wfurt
wfurt requested a review from a teamJanuary 25, 2022 02:37
@ghostghost assigned wfurtJan 25, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/ncl, @vcsjones
See info in area-owners.md if you want to be subscribed.

Issue Details

This back port of #61891

Customer Impact

The issue described in #61891 impacts use of CipherSuitesPolicy. However the Tls13Supported is internal static properly and when incorrectly set to false it prevents application from using Tls1.3

Regression

yes. This was introduced in 6.0

Testing

Testing was manual as the behavior depends on loading native ship and sequence of operations - both happen bore our test even start. I used the sample code form #62973 and debugger to verify that the properly is properly set.

Risk

small. This beasicly makes sure OpenSSL is initialized before we use it.

Author:wfurt
Assignees:-
Labels:

Servicing-consider, area-System.Net.Security

Milestone:6.0.x

@leecowleecow added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jan 25, 2022
@leecowleecow modified the milestones: 6.0.x, 6.0.3Jan 25, 2022
@wfurt

wfurt commented Feb 7, 2022

Copy link
Copy Markdown
MemberAuthor

SendPacketsElement_FileLargeOffset_Throws on Windows is unrelated. ( #63888)
Mono failure is #57941

@safern
safern merged commit 78ca1be into dotnet:release/6.0Feb 7, 2022
@ghostghost locked as resolved and limited conversation to collaborators Mar 10, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.SecurityServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@wfurt@karelz@leecow@safern