Update kubeclient requirement from = 4.1.0 to = 4.9.3
Updates the requirements on kubeclient to permit the latest version.
Changelog
Sourced from kubeclient's changelog.
4.9.3 — 2021-03-23
Fixed
VULNERABILITY FIX: Previously, whenever kubeconfig did not define custom CA (normal situation for production clusters with public domain and certificate!),
Configwas returning ssl_options[:verify_ssl] hard-coded toVERIFY_NONE:-(Assuming you passed those ssl_options to Kubeclient::Client, this means that instead of checking server's certificate against your system CA store, it would accept ANY certificate, allowing easy man-in-the middle attacks.
This is especially dangerous with user/password or token credentials because MITM attacker could simply steal those credentials to the cluster and do anything you could do on the cluster.
This was broken IN ALL RELEASES MADE BEFORE 2022, ever since
Kubeclient::Configwas created.#554.
Bug fix: kubeconfig
insecure-skip-tls-verifyfield was ignored. When kubeconfig did define custom CA,Configwas returning hard-codedVERIFY_PEER.Now we honor it, return
VERIFY_NONEiff kubeconfig has explicitinsecure-skip-tls-verify: true, otherwiseVERIFY_PEER.#555.
Config: fixed parsing ofcertificate-authorityfile containing concatenation of several certificates. Previously, server's cert was checked against only first CA cert, resulting in possible "certificate verify failed" errors.An important use case is a chain of root & intermediate cert(s) - necessary when cluster's CA itself is signed by another custom CA. But also helps when you simply concatenate independent certs. (#461, #552)
- Still broken (#460): inline
certificate-authority-datais still parsed usingadd_certmethod that handles only one cert.These don't affect code that supplies
Clientparameters directly, only code that usesConfig.4.9.2 — 2021-05-30
Added
Removed
- Reduce .gem size by dropping test/ directory, it's useless at run time (#502).
... (truncated)
Commits
c27893fMerge pull request #558 from cben/release-4.9.3d7bc03dBump kubeclient to 4.9.3109ea71Merge pull request #556 from cben/v4.y-security-config-ssl_verifye4cb727CHANGELOG and README about Config verify_ssl vulnerabilityaa36e89SECURITY: integration tests for Config+Client verify_ssl with real clusterc21e2b5SECURITY: unit tests for Kubeclient::Config handling of ssl_options[:verify_ssl]5086eb8Merge branch 'ancient-security-config-ssl_verify'f61a4e1Merge tag 'v4.6.0' into ancient-security-config-ssl_verify88483cfSECURITY: Kubeclient::Config: return ssl_options[:verify_ssl] correctlye05c715Merge pull request #552 from cben/v4.y-openssl-x509-store-add-file- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the Security Alerts page.
@nanit, I see your code uses Kubeclient::Config.read("#{ENV['HOME']}/.kube/config").
4.9.3 fixed a severe issue in Config, in some scenarios causing insecure VERIFY_NONE connections that may leak cluster credentials — https://github.com/ManageIQ/kubeclient/issues/554
I did not test this but generally kubeclient obeys semver, AFAIK 4.9 remains backwards-compatible with 4.1.
(You may want to consider relaxing from an exact = dependency to '~> 4.9.3' allowing future 4.9.z versions, or '>= 4.9.3', '< 5.0.0' for any later 4.y.z, but that's up to you)
Looks like kubeclient is up-to-date now, so this is no longer needed.