OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on.

OpenBSD Journalが1月14日、2010年に公開されたバージョンから現在のバージョンに至るまでのOpenSSHに脆弱性があることを明らかにした。時系列に見た事態の顛末は「OpenSSH: client bugs CVE-2016-0777 and CVE-2016-0778」にまとまっている。実装上の問題も含めた詳しい解説は「Qualys Security Advisory｜Roaming through the OpenSSH client: CVE-2016-0777 and CVE-2016-0778に掲載されている。

この脆弱性はCVE-2016-0777およびCVE-2016-0778として分類されているが、本稿執筆時点では調査中として詳しい説明は掲載されていない。

OpenSSHは2010年3月に公開されたOpenSSH 5.4からサーバへの再接続を可能にする「ローミング」と呼ばれる機能を実装している。これはサーバとクライアントの接続が予期せず切れてしまった場合、サーバがこの機能をサポートしていれば接続を再開できるというもので、実装としては取り込まれているもののドキュメントには書かれていない機能とされている。

OpenSSHサーバ側ではこの機能がデフォルトで有効化された状態でリリースされたことはないが、OpenSSHクライアント側ではこの機能がデフォルトで有効になった状態でリリースされている。このため、細工されたOpenSSHサーバを使われた場合、この機能に存在していた脆弱性を悪用することで、秘密鍵などのメモリ上のデータを盗み取られる危険性が盗まれる危険性があるという。

この問題はOpenSSH 5.4からOpenSSH 7.1に存在するとされており、OpenBSDプロジェクトからはこの問題を修正した「OpenSSH 7.1p2」が公開されている。FreeBSD portおよびMacPortsはすでにこの修正を反映させたほか、ほかのディストリビューションも随時修正版の提供を開始するものと見られる。問題を一時的に回避するには/etc/ssh/ssh_configにUseRoaming noの設定を追加すればよいとされている。プロジェクトやベンダーが修正版の提供を開始した場合、迅速に適用することが推奨される。