- Qualysは、OpenSSHの転送されたSSHエージェントでリモートコード実行が可能な脆弱性を発見。
- SSHエージェント転送は主にCI/CDなどで、認証情報を直接保存せず、リモート上にある認証情報を使ってログインを試みる際によく使われる。
- 脆弱性は、SSHエージェントがPKCS11サポートを許可する部分で発生。
- PKCS11サポートのため、リモートユーザーが信頼できる場所にある共有ライブラリをロードして閉じることを許可していた。
- Ubuntu Desktopに存在するすべてのデフォルトインストール済み共有ライブラリをテストした結果、デフォルトライブラリは通常、閉じられることを想定して設計されていないため、SSHエージェントで閉じる際にエラーが発生。
- こうしたエラーはいくつかのシステムシグナルを発生させ、これらを組み合わせることでリモートから任意のコードを実行することに成功。
- OpenSSHは、単純にリモートPKCS11サポートを無効化し、共有ライブラリをホワイトリストで管理するよう修正。
- 従来はlibフォルダ配下のすべての共有ライブラリをロードできた。
- SSHエージェント転送機能を使っている場合は、不要であればPKCS11サポートを無効化するべき。
3件のコメント
これは個人PCで設定を無効にするのでしょうか? それともサーバー側の設定でしょうか……
ssh-agent forwardingを使ったことがなければ、まったく影響はないようです。脆弱性の詳細説明を少し見てみたのですが、よく理解できませんね……
SIGBUS、SIGSEGVハンドラがどうこうでSIGTRAPが発生して、スタックバッファに何かを保存しておいて、そちらにジャンプするよう誘導して……それらをすべてライブラリのロード/アンロードで制御するというのですが、正直何を言っているのかよく分かりません。
まあ、そういうものなんだな……という感じですね。
興味のある方は、例まで含まれているような非常に詳しい文書があるので、
一度読んでみることをおすすめします.