TL;DR
- Kubernetesに脆弱性が見つかった(CVE-2019-11253)
- Severity7.5なので高め(昔からクラスター運用してる場合はなるはやで上げよう)
- Kubernetes API Server(kubectlがアクセスするエンドポイント)がPublic IPの場合は特に注意しよう
脆弱性の内容
特定の条件を満たすマニフェスト(YAML or JSON payload)を食わせるとKubernetesのマスターコンポーネントであるKubernetes API Serverが応答不能になる。
1.14.0以降のバージョンで新規に作られたクラスターの場合、デフォルトのRBACの設定が変更されており、認証済みユーザーのみがこの脆弱性を突くことが出来るようになっている。つまり、脆弱性の範囲が限定的になる(クラスターに対してYAMLを送るためにユーザー情報を持っているクライアントのみが実行可能なため)。
1.13以下のバージョンから運用しているクラスターの場合、匿名ユーザーでも脆弱性を突くことが出来る(ref. 再現コード)。
つまり、API Serverが誰でもアクセス可能なエンドポイントにあって、なおかつKubernetesのバージョンが1.13以前から運用している場合、速やかなバージョンアップが必要。
重要なのは1.13などから1.14に上げた場合でも、「RBACの設定は前方互換性のために変わらない」ということ。つまり、ただバージョンを1.14にあげるだけではだめで、脆弱性がパッチされたものに上げる必要がある。
各社パブリッククラウドの対応状況(2019年10月20日現在)
個人的に使っているものだけです。追加の情報があればコメントにどうぞ。
サービス | 影響の有無 | 備考 |
---|---|---|
GKE | あり | 既にパッチが公開されているので、アップデートすればよい |
EKS | 不明 | まだ公式の声明が出ていない |
AKS | あるが低い | Issue参照。kubeletの起動オプションで匿名ユーザーを許可しない設定になっているようだ。パッチの有無については現時点では不明。 |