ktransformers の未認証 pickle デシリアライズの脆弱性によりリモートコード実行に至る
ktransformers 0.6.3 以前のバージョンでは、SchedulerServer の ZMQ ROUTER ソケットが全インターフェースにバインドされ、かつ認証機構を欠いているため、未認証の pickle デシリアライズ(CWE-502)というセキュリティ上の欠陥が存在します。攻撃者は悪意ある __reduce__ メソッドを埋め込んだ特製の pickle ペイロードを送信することで、サーバープロセスの権限で任意のシェルコマンドを実行できます。本脆弱性により、遠隔の攻撃者は認証なしでサーバーを直接制御でき、システムの機密性・完全性・可用性が脅かされます。修正版(commit def0f93)へ更新していないすべての ktransformers 利用者が影響を受けます。攻撃者は露出した ZMQ ポートへ悪意あるパケットを送るだけで悪用が成立し、利用者の操作を必要とせず遠隔から制御できます。
- システムの完全な制御:攻撃者はサーバープロセスの文脈で任意のコードを実行でき、サーバーの権限に応じてプログラムの導入、データの閲覧・改変・削除、完全な権限を持つ新規アカウントの作成が可能になります
- 利用者の操作を要しない攻撃:攻撃者は利用者に何らかの操作をさせる必要がなく、露出したネットワークインターフェースへ特製パケットを送るだけで脆弱性が発火します
- リモートコード実行:欠陥がネットワーク到達可能なサービス端点に存在するため、攻撃者はインターネット上の任意の場所から攻撃を仕掛け、サーバーを完全に掌握できます
- SchedulerServer の ZMQ ソケットのバインドアドレスを限定し、全インターフェース(0.0.0.0)へのバインドを避けてください
- ネットワーク層でファイアウォール規則を設定し、信頼できる IP アドレスのみが ZMQ サービスポートへ到達できるようにしてください
