-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Setting TLS1.2 minimum because TLS1.0 and TLS1.1 are vulnerable #26169
Conversation
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message may repeat a few times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. Otherwise, if this message is too spammy, please complain to ixdy. |
2 similar comments
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message may repeat a few times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. Otherwise, if this message is too spammy, please complain to ixdy. |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message may repeat a few times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. Otherwise, if this message is too spammy, please complain to ixdy. |
@@ -413,8 +413,8 @@ func InitializeTLS(s *options.KubeletServer) (*server.TLSOptions, error) { | |||
} | |||
tlsOptions := &server.TLSOptions{ | |||
Config: &tls.Config{ | |||
// Change default from SSLv3 to TLSv1.0 (because of POODLE vulnerability). | |||
MinVersion: tls.VersionTLS10, | |||
// Change default from SSLv3 to TLSv1.2 (because of POODLE vulnerability). |
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.
Please expand comment to list what is wrong with each version. i.e.
// Can't use SSLv3 because of POODLE
// Can't use TLSv1.0 because of xxxx
// Can't use TLSv1.1 because of xxxx
ok to test |
@smarterclayton will this change break any openshift clients? |
No, we've been running this way for a while. We left an env var escape On May 24, 2016, at 6:46 PM, Daniel Smith notifications@github.com wrote: @smarterclayton https://github.com/smarterclayton will this change break — |
In that case, fix the comment and LGTM :) On Tue, May 24, 2016 at 3:50 PM, Clayton Coleman notifications@github.com
|
@lavalamp done! |
// Can't use SSLv3 because of POODLE and BEAST | ||
// Can't use TLSv1.0 because of POODLE and BEAST using CBC cipher | ||
// Can't use TLSv1.1 because of RC4 cipher usage | ||
MinVersion: tls.VersionTLS12, |
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.
+1, thanks
Good comment. |
Looks good, can you squash? |
Adding comments to explain what is wrong with each version
@smarterclayton sure! done! |
LGTM |
I set the release note label-- we should announce this change. |
@k8s-bot e2e test this please issue: #IGNORE (there were problems with Jenkins at that time) |
@k8s-bot test this [submit-queue is verifying that this PR is safe to merge] |
GCE e2e build/test passed for commit d3f3e6c. |
Automatic merge from submit-queue |
@@ -63,8 +63,10 @@ func TLSConfigFor(c *Config) (*tls.Config, error) { | |||
} | |||
|
|||
tlsConfig := &tls.Config{ | |||
// Change default from SSLv3 to TLSv1.0 (because of POODLE vulnerability) | |||
MinVersion: tls.VersionTLS10, | |||
// Can't use SSLv4 because of POODLE and BEAST |
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.
SSLv3. right? (minor nit)
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.
Oops good catch! I just created this PR to fix it #26562
Automatic merge from submit-queue Minor typo in comment, SSLv3 instead of SSLv4 Minor fix in a comment from this PR #26169
In the following PR, TLS was set to 1.2 as the minimum because TLS1.0 and TLS1.1 are vulnerable: kubernetes#26169 However the scripts that used curl were not updated to match the TLS version. Since --tlsv1.2 was introduced in curl 7.34.0, we should check the version before using the option. Fixes kubernetes#28888
TLS1.0 is known as vulnerable since it can be downgraded to SSL
https://blog.varonis.com/ssl-and-tls-1-0-no-longer-acceptable-for-pci-compliance/
TLS1.1 can be vulnerable if cipher RC4-SHA is used, and in Kubernetes it is, you can check it with
openssl s_client -cipher RC4-SHA -connect apiserver.k8s.example.com:443
https://www.globalsign.com/en/blog/poodle-vulnerability-expands-beyond-sslv3-to-tls/
Test suites like Qualys are reporting this Kubernetes issue as a level 3 vulnerability, they recommend to upgrade to TLS1.2 that is not affected, quoting Qualys:
RC4 should not be used where possible. One reason that RC4 was still being used was BEAST and Lucky13 attacks against CBC mode ciphers in SSL and TLS. However, TLSv 1.2 or later address these issues.