CVE-2026-59341 in sealed-secrets情報

要約

〜によって VulDB • 2026年09月15日

Sealed Secretsコントローラーの認証不要なPOSTエンドポイントにセキュリティ脆弱性が存在します。spec.template.dataフィールド内にカスタムGoテンプレートロジックを含む改ざんペイロードを送信することで、内部ネットワークへのアクセス権限を持つ攻撃者は、ハンドラを復号オラクルとして悪用し、暗号化されたシークレットの完全な平文を取得できます。

POST /v1/verifyおよび/v1/rotateハンドラーはUnseal()関数を呼び出して対象となるシークレットを復号し、その後、spec.template.data.*内のGoテンプレートをすべてレンダリングします(pkg/apis/sealedsecrets/v1alpha1/sealedsecret_expansion.go)。この際、復号されたペイロードが評価コンテキストとして使用されます。テンプレート実行中に発生したエラーは、そのままHTTPレスポンスのステータスコードに反映されます。

AEADラベルバインディングの不備: spec.template.dataフィールドが、メタデータに対するAEAD認証済みデータのラベルバインディング(ciphertext to metadata)から除外されています。その結果、攻撃者は対象シークレットの有効なメタデータとencryptedDataをそのままコピーし、AEAZ復号およびラベル検証を満たす一方で、spec.template.dataを任意のテンプレートロジックに自由に置き換えることができます。

サイドチャネルオラクル: テンプレート実行のエラーはHTTPレスポンスコードに直接マッピングされます。HTTP 200(OK)はテンプレート実行が成功したことを示し、HTTP 409(Conflict)はテンプレート実行が失敗したことを示します(例:{{ fail "..." }}による場合)。

攻撃者は {{ if eq (substr 0 1 .password) "S" }}ok{{ else }}{{ fail "x" }}{{ end }のような条件文を注入することで、文字の推測が正しい場合にHTTP 200ステータスを、誤っている場合にHTTP 409を受信します。この差分応答により、リクエストごとに1ビット(文字等価性)の情報リークが発生し、連続した照会を通じてシークレット全体を取得することが可能になります。

攻撃ベクターおよび前提条件: 認証不要;コントローラーの内部サービスポート(:8080)へのネットワークアクセスが必要。このサービスはデフォルトではパブリックインターネットに公開されていませんが、Kubernetesクラスター内の任意のポッドまたはkubectl port-forward接続を通じてアクセス可能です。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Vmware

予約する

2026年07月04日

モデレーション

承諾済み

エントリ

VDB-404087

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!