Kyvernoはクラウドネイティブプラットフォームエンジニアリングチーム向けに設計されたポリシーエンジンです。バージョン1.16.3および1.15.3以前には、名前空間内のKyvernoポリシーapiCallにおいて重大な認可境界のバイパスが存在していました。解決された`urlPath`はKyvernoのAdmission Controllerのサービスアカウントを使用して実行されますが、リクエストがポリシーの名前空間に限定されていることを強制していません。その結果、名前空間付きポリシーの作成権限を持つ認証ユーザーは、KyvernoのAdmission ControllerのIDでKubernetes APIリクエストを実行させ、そのサービスアカウントのRBACで許可された任意のAPIパスを対象にできます。これにより名前空間の隔離が破られ、クロスネームスペースの読み取り(例えばConfigMapsや許可されている場合はSecrets)が可能となり、urlPathをコンテキスト変数の置換で制御することによりクラスター全体やクロスネームスペースの書き込み(例えばClusterPoliciesの作成)も許されるようになります。バージョン1.16.3および1.15.3にてこの脆弱性の修正が行われています。
|