注目★★★★★GitHub Advisory
SSH.NET の ScpClient に任意ファイル上書き脆弱性、ディレクトリトラバーサルで RCE リスク
30秒で把握
- 1SSH.NET ScpClient.Download() がリモートサーバー名を検証せず、ディレクトリトラバーサル攻撃が可能
- 2悪意あるサーバーが ../・絶対パス混入で任意ファイル上書き、RCE・権限昇格に至る可能性
- 3修正版で受信ファイル名を検証・パス逸脱時に例外送出、利用者は最新版へのアップデート必須
要約
SSH.NET の ScpClient.Download() メソッドが、リモート SCP サーバーから受け取ったファイル名を検証せずに使用するため、悪意あるサーバーが `../` や絶対パスを含むファイル名を返すと、クライアントプロセスがアクセス可能な範囲内の任意の場所にファイルを作成・上書きできる脆弱性が存在する。OpenSSH CVE-2019-6111 に似ているが、ディレクトリトラバーサル機能を持つ。攻撃者が ~/.ssh/authorized_keys や シェル rc ファイル、アプリケーション設定ファイルを上書きすれば、永続化・権限昇格・リモートコード実行につながる。修正版では受信ファイル名の妥当性を検証し、パス逸脱を検出時に ScpException を投げる。
あなたへの影響
SSH.NET の ScpClient を使ってリモートサーバーからのディレクトリ再帰ダウンロードを実装しているチームは、最新版へのアップデートと。
推奨:信頼できないサーバーからのダウンロード実装については追加の入力検証を検討すべき。