OpenSSH の開発チームが、Alpine Linux など一部の Linux で起きるパスワード認証回避の脆弱性「*sshole」(CVE-2026-123158)を修正しました。
「257文字のパスワードでログインできる」は本当なのか、影響する条件と対処、10年前の不具合がいま見つかった理由を整理します。
要点まとめ
まず、この脆弱性のポイントを3つにまとめます。
- musl libc(軽量な標準ライブラリ)を使い、PAM(認証の共通部品)なしで動く sshd で、パスワード無しのアカウントに 257〜1024 バイトの任意のパスワードでログインできる場合があります。深刻度は CVSS 8.1(High)です
- 主な対象は Alpine Linux です。Debian・Ubuntu・RHEL などの glibc 系や、PAM を使う sshd は影響を受けません
- 修正版は 2026年11月5日公開の OpenSSH 10.6p2 です。すぐ更新できない場合は、パスワードログインの無効化で回避できます
CVE-2026-123158(*sshole)とは
CVE-2026-123158 は、2026年11月5日に MITRE(CVE番号を管理する米国の非営利団体)が公開した脆弱性です。同じ日に OpenSSH(SSH接続の標準的なソフトウェア)の開発チームが修正版 10.6p2 を公開し、Alpine Linux も修正パッケージを配布しました。
深刻度は CVSS 3.1 で 8.1(High)です。ログイン情報は不要ですが、特定のアカウント構成が必要なため、攻撃の難しさは「高」と評価されています。
発見者は、Wakefield(wakefield.co)に所属する Özgün Kültekin 氏です。11月4日に OpenSSH へ報告し、翌日に修正版が出ました。名前の「*sshole」は発見者が付けたもので、「sshhole」と表記する報道もあります。OpenSSH は、根本原因は sshd の外側にあるものの、sshd 側で回避できるため修正したと説明しています。
参考リンク:https://www.openssh.org/releasenotes.html#10.6p2
簡単解説
マンションの管理人が、空室を名簿に「*」の印で記録しているとします。郵便の仕分け機は、故障するとエラーの印として同じ「*」を出していました。管理人は仕分け機の結果と名簿を見比べて「一致した」と判断し、空室の鍵を渡してしまう。これが今回の不具合の構図です。
「257文字でログインできる」仕組み
長いパスワード自体に特別な意味はありません。ライブラリの「エラーの印」と「パスワード無しの印」が、たまたま同じ文字だったことが原因です。
- musl の crypt() 関数(パスワードを照合用の文字列に変換する関数)は、SHA-256 / SHA-512 方式で 256 バイトを超えるパスワードを受け取ると失敗し、エラーの印として「*」を返します
- Alpine などでは、パスワードを設定していないアカウント(鍵認証専用のユーザーなど)の /etc/shadow(パスワード保管ファイル)の欄に「*」が入っています
- sshd は変換結果と保管された値を文字列として比べます。どちらも「*」なので一致と判断し、ログインを受け入れます
sshd は「*」のアカウントを照合するとき、別アカウントの設定(ソルト=変換に混ぜる値)を借ります。そのため、SHA-256 / SHA-512 方式のパスワードを持つ別アカウントがあることも条件です。CVE 記録は対象を「256〜1024文字」と記載していますが、256 バイトちょうどでは失敗しないため、実際に影響するのは 257 バイト以上です。
OpenSSH 10.6p2 では、保管された値が4文字未満なら一致とみなさないように修正しました。
簡単解説
自動販売機に長すぎる紙幣を入れたら「エラー」ランプが点き、その色が偶然「購入完了」と同じだった状況に近いです。店員がランプの色だけで判断すれば、商品が出てしまいます。修正版は、ランプの色だけでなくレシートの中身まで確認するように変えたものです。
影響を受ける環境
成立には、次の条件がすべてそろう必要があります。
- ライブラリ:sshd が musl libc で動いている(Alpine Linux など)
- PAM:PAM なしでビルドされている、または UsePAM no で動いている
- パスワード認証:PasswordAuthentication が有効(初期設定で有効)
- アカウント:パスワード欄がちょうど「*」のアカウントがある(鍵認証専用ユーザー、Alpine 3.16 以降の root など)
- 別アカウント:SHA-256 / SHA-512 方式($5$ / $6$)のパスワードを持つアカウントがある
発見者によると、Alpine の Docker イメージや、AWS・Azure 向けの Alpine 公式イメージも対象です。これらの公式イメージでは、初期ユーザー alpine がパスワードなしで doas(管理者権限で実行するコマンド)を使えるため、ログインされると管理者権限まで奪われるおそれがあります。
一方、glibc 系 Linux、PAM を使う sshd、macOS、OpenBSD、Dropbear(OpenWrt 標準の SSH サーバー)は影響を受けないとされています。
簡単解説
5つの鍵穴が付いた金庫を思い浮かべてください。5本すべてが合ったときだけ開くので、大半の家の金庫は無関係です。ただ、Alpine を使ったコンテナやクラウドの初期イメージは、最初から5本がそろいやすい型で大量に配られています。自分で設定した覚えがなくても、ベースイメージ経由で当てはまる場合があります。
今すぐできる対処
最優先は OpenSSH の更新です。Alpine の修正済みパッケージは次のとおりです。
- edge:10.6_p2-r0
- 3.24:10.3_p1-r2
- 3.23:10.2_p1-r1
- 3.22:10.0_p1-r11
- 3.21:9.9_p2-r1
- 3.20:9.7_p1-r6
- 3.19:9.6_p1-r3
Alpine の修正版はバージョン番号が 10.6p2 より古いため、番号だけを見るスキャナーは修正済みでも「未修正」と判定する場合があります。-r の数字まで確認してください。また、パッケージを更新しただけでは動いている sshd は古いままなので、更新後に必ず再起動します。
すぐ更新できない場合は、sshd_config で PasswordAuthentication no を設定し、sshd -t で検証してから再起動します。反映結果は sshd -T で確認できます。
参考リンク:https://security.alpinelinux.org/vuln/CVE-2026-123158
10年眠っていたバグが、いま見つかった理由
不具合の芽は2012年、musl が crypt() の失敗時に「*」を返すよう変えたことです。2016年には、応答時間からユーザー名の有無を推測される別の脆弱性(CVE-2016-6210)への対策として、sshd が別アカウントのソルトを借りて照合する仕組みが入りました。これで今回の照合が実際に通る状態になり、発見者によると2016年から約10年そのまま残っていました。
長く見つからなかった理由として、発見者は次の点を挙げています。
- 多くのディストリビューションは PAM を使い、「*」のアカウントで crypt() を呼ばない
- OpenSSH のテストは OpenBSD と glibc の環境で行われ、musl では行われていなかった
- 新規インストール直後の、誰もパスワードを設定していない状態では成立しない
発見を支えたのは AI エージェントです。発見者は glibc / musl、PAM あり / なしなどの組み合わせで OpenSSH を何通りもビルドし、極端に長いパスワードなどを含む約1万7,600通りのログインを AI エージェントの群れで試しました。結果が食い違ったのは「musl・PAM なし」の組み合わせだけでした。人手では試しきれない数の組み合わせを、AI で網羅的に試した形です。
OpenSSH の Damien Miller 氏は修正版の告知で、報告された脆弱性が AI エージェントによって短期間で再発見される例を複数見てきたと述べています。数時間で再発見された例もあったといいます。そのため、公表を待つ期間を長く取ることは「主に攻撃者を利する危険な慣行」だと考えるようになり、報告の翌日に修正版を出しました。
AI で古い脆弱性を掘り起こす動きは今回だけではありません。2026年10月には、Anthropic が自社の AI を使い、Linux カーネルの脆弱性 CVE-2026-98432 で遠隔から root 権限を奪えることを実証しています。
参考リンク:https://sshhole.com/
簡単解説
図書館で誤植を探す場面を思い浮かべてください。人の校正者は、よく読まれるページから確認します。AI は全ページを、何十通りもの版で並べて読み比べます。誰も開かなかった巻末の索引の誤植まで見つかるのはこのためです。見つかるのが速くなった分、直すまでの猶予も短くなっています。
FAQ
Q1. 本当に257文字のパスワードでログインできるのですか?
条件がそろった環境に限り、本当です。Debian・Ubuntu・RHEL など一般的な構成では成立しません。
Q2. 自分のサーバーが対象か、どう確認すればよいですか?
OS が Alpine Linux など musl ベースかを確認し、/etc/shadow に「*」のアカウントと $5$ / $6$ で始まるアカウントの両方があるかを見ます。両方があり、パスワードログインが有効なら対象です。
Q3. Docker コンテナも対象ですか?
Alpine ベースのイメージで sshd を動かし、パスワード認証を有効にしている場合は対象になり得ます。sshd を動かしていなければ、この攻撃は成立しません。
Q4. 侵入されたか調べる方法はありますか?
セキュリティ企業 Ethiack は、本来パスワードを持たないアカウントへのパスワードログイン成功をログで探すよう勧めています。見つかった場合は、doas の実行履歴、新しいユーザー、authorized_keys(SSH公開鍵の登録ファイル)の変更を確認してください。
関連記事
本記事のテーマに関連する記事を3本紹介します。
- CVE-2026-98432のニュースを3分で解説|Linuxに遠隔root脆弱性、カーネル更新が必要
- PHP本体に認証なしでコード実行の脆弱性「PHP2Shell」。8.5.12等への更新が必要
- Project Glasswing 初動報告。Anthropicが1ヶ月で重大脆弱性1万件超を発見
この記事について: AI 支援で執筆、編集部が事実確認・編集しています。誤りや追加情報があれば Contact よりお知らせください。
Previous Post
Claude Admin API に全端末サインアウトをベータ追加。API キーは止まらない
Next Post
生成AIニュース 昨日【2026年11月6日(金)】のAI公式発表を3分でチェック
ソフトウェアエンジニアとして、AIツールの最新動向を誰よりも早くキャッチすることを日課にしている。リリースされたばかりのツールをすぐ試し、実務で使えるかどうかを自分の手で確かめるのがスタイル。「ちょっと役立つ」くらいがちょうどいい——そんな感覚で、難しくなりすぎず、でも本質を外さない使い方やニュースをライトに発信していく。