Osegi
セキュリティ·2 分で読めます

OpenSSHに10年潜む脆弱性、257文字のパスワードでロック突破

musl採用のLinuxで、257〜1,024文字の任意のパスワードによりOpenSSH経由でロック済みアカウントに入れる脆弱性「*sshole」が判明。10.6p2で修正された。

Terminal window showing an SSH login prompt on a Linux server with a very long password being typed.
画像: Numerama

musl系Linuxで、OpenSSHを通じてロック済みアカウントに侵入できる脆弱性が明らかになった。257〜1,024文字の長いパスワードであれば、内容を問わず認証を通過できたという。問題は2016年から存在し、判明している限り10年以上気付かれていなかった。修正版のOpenSSH 10.6p2が11月5日に公開された。

「*sshole」と発見の経緯

11月初めに公表したのはWakefieldの研究者Ozgun Kultekin氏。名称の「*sshole」はSSHと「hole」を掛けた言葉遊びで、先頭のアスタリスクは脆弱性の原因そのものでもある。同氏はOpenSSHを12通りの設定でビルドし、AIエージェントが生成した約17,600回の異常なログイン試行を各ビルドに実施。1つの構成だけが他と異なる反応を示したという。

アスタリスクが鍵とエラー表示を兼ねた

Unixでは1980年から、パスワードを受け付けないアカウントにはハッシュの代わりに「」を記録する慣習がある。ところが2012年以降、muslのハッシュ関数は失敗時にも「」を返す仕様になり、パスワードが256文字を超えると失敗する。

2016年、OpenSSHは存在しないアカウントへの応答が速く、応答時間から実在アカウントを割り出せる問題を修正した。その際、ロック済みアカウントでも別アカウントの設定を借りてハッシュ計算を行うようにした。長いパスワードでは計算が失敗して「」が返り、保存済みの「」と一致するため、ログインが許可されていた。

影響を受ける条件

悪用にはmuslの利用、PAM未使用、パスワード認証の有効化、さらに「*」でロックされたアカウントと実パスワードを持つ別アカウントの存在が必要だ。muslはAlpine Linux、OpenWrt、Buildroot、Yoctoなどで使われる。Alpine 3.16(2022年)以降はrootがこの方式でロックされており、AWSとAzureの公式Alpineイメージでは、既定アカウントがパスワードなしで管理者権限を得られる場合もある。

Debian、Ubuntu、Fedora、PAMを使う環境は対象外。研究者は実際の悪用を把握していない。管理者はOpenSSH 10.6p2に更新するか、できなければパスワード認証を無効にする必要がある。

注目のアプリ

SUMO:数字パズル

正しいマスを選んで足し算、目標の数に。覚えるのは簡単、極めるのは難しい。無料、全年齢向け。

Dialo:話して学ぶ語学アプリ

AIの会話パートナーと話すだけ。一文ごとに添削され、あなたの言語で解説が返ってきます。9言語、A1からC2まで。

タグ:opensshlinuxmuslalpine linuxvulnerabilitysshole

同じ日のニュース

すべて見る →

関連カテゴリ: セキュリティ

すべて見る →