注目★★★★★GitHub Advisory
Logging operator に Fluentd 設定インジェクション、任意コード実行が可能
30秒で把握
- 1Logging operator の設定生成で改行挿入により Fluentd 設定ブロック追加可能、exec プラグイン経由で RCE
- 2Flow リソース作成権限があれば攻撃可能、Kubernetes RBAC 制限不十分な環境で特に危険
- 3ユーザーは即座に修正版へアップデート・Flow 作成 RBAC を最小化・Fluentd コンテナ実行ユーザー最小権化を実施
要約
Logging operator の Fluentd 設定レンダラーは、CRD の Flow リソースから文字列を検証・エスケープなしに fluent.conf に直接書き込む。Flow リソース作成権限を持つユーザーは、改行を含む値を injection して Fluentd 設定を操作でき、record_transformer.records パラメータで新たな `<match **>` ブロックを追加可能。そこに Fluentd の `@type exec` プラグインを指定すれば、Fluentd aggregator 内で任意コマンドが実行される。pkg/sdk/logging/model/render/fluent.go の FluentRender で値がクォートされず、改行や `<>` 文字がバリデーションされないのが根因。
あなたへの影響
この記事が日本のエンジニアに与える影響と、今日取るべきアクションは、Personal会員向けに掲載しています。
クレカ不要・いつでも解約