30秒で判断
対応すべき人:
- Grafana Operator(
grafana-operator)バージョン 5.23 以前を Kubernetes で運用している - Grafana Operator に対してダッシュボードや LibraryPanel リソースを作成できるユーザーが複数いる(特にマルチテナント環境)
対応不要な人:
- Grafana Operator 5.24.0 以降を使用している
- Grafana Operator を使用しておらず、Grafana を直接 Helm などで管理している
- Grafana Operator 管理者のみが Dashboard リソースを作成できる(信頼できる管理者のみ)
確認コマンド:
# Grafana Operator のバージョン確認
kubectl get deployment -n grafana-operator -o jsonpath='{.items[*].spec.template.spec.containers[*].image}'
# または OLM 経由でインストールしている場合
kubectl get csv -A | grep grafana-operator
概要
Grafana Operator 5.23 以前において、Dashboard または LibraryPanel リソースで jsonnet データテンプレート言語を使用している場合、悪意あるユーザーが Grafana Operator マネージャー Pod の Kubernetes サービスアカウントトークンを取得できます。
Grafana Operator は grafanaDashboards や grafanaLibraryPanels に spec.jsonnetLib を指定することで、jsonnet 式をオペレーターマネージャーのコンテキストで評価します。この jsonnet 評価が適切なサンドボックス制限なしに行われるため、ファイルシステムアクセスを通じてサービスアカウントトークン(/var/run/secrets/kubernetes.io/serviceaccount/token)を読み取れる可能性があります。
マルチテナント環境や、信頼されていないユーザーが Grafana ダッシュボードを管理できる環境で特に影響が大きくなります。
CVSSベクトル
| 項目 | 値 | 説明 |
|---|---|---|
| Attack Vector | Network | ネットワーク経由(Kubernetes API 経由)で攻撃可能 |
| Attack Complexity | Low | 特別な条件不要 |
| Privileges Required | Low | 一般的な Kubernetes ユーザー権限 |
| User Interaction | None | ユーザー操作不要 |
| Scope | Unchanged | スコープ変化なし |
| Confidentiality | High | 機密性への影響大 |
| Integrity | High | 完全性への影響大 |
| Availability | High | 可用性への影響大 |
影響を受けるソフトウェア
| 製品 | 影響バージョン | 修正バージョン |
|---|---|---|
| Grafana Operator | ≤ 5.23 | 5.24.0 |
修正バージョンと回避策
推奨対応: Grafana Operator を 5.24.0 へアップデートします。
緊急時の回避策: jsonnet ベースのリソース作成を禁止する ValidatingAdmissionPolicy を適用します。
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
name: "prevent-jsonnet-dashboards"
spec:
failurePolicy: Fail
matchConstraints:
resourceRules:
- apiGroups: ["grafana.integreatly.org"]
apiVersions: ["v1beta1"]
operations: ["CREATE", "UPDATE"]
resources: ["grafanadashboards", "grafanalibrarypanels"]
validations:
- expression: "!has(object.spec.jsonnetLib)"
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicyBinding
metadata:
name: "prevent-jsonnet-dashboards-clusterwide"
spec:
policyName: "prevent-jsonnet-dashboards"
validationActions: [Deny]
関連リンク
データソース: NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
