OpenSSHの「SShole」脆弱性により、Alpine Linuxで数時間以内にrootアクセスが可能に
攻撃者はCVE-2026-123158を悪用し、musl libc上で動作するOpenSSHにおいてパスワードが無効化されたアカウントの認証をバイパスしています。Alpine Linuxでの積極的なエクスプロイトが確認されています。
英語の原文から自動翻訳されました。
脅威アクターは、CVE-2026-123158として追跡され、「SShole」というコードネームを持つOpenSSHの重大な脆弱性が公開されてから9時間未満で、その悪用を開始しました。この欠陥により、認証されていない攻撃者が、Alpine Linuxを含む特定のLinuxディストリビューションでパスワードを設定していないアカウントへのアクセス権を取得できます。セキュリティ研究者はハニーポット上でのrootアクセス成功を確認しており、デフォルト設定に依存するインフラストラクチャに対する即時的なリスクを浮き彫りにしています。
何が起きたのか
この脆弱性は、Pluggable Authentication Modules (PAM) が無効化された状態で musl C ライブラリ上の OpenSSH を実行している Linux システムに影響します。この構成は、デフォルトでこれを使用している Alpine Linux などの軽量ディストリビューションで一般的です。攻撃者は、利用可能なパスワードが設定されていないアカウントに対して、長さが 257 バイトから 1,024 バイトの間である過大なパスワードを送信できます。システムはログインを拒否する代わりに、誤ってユーザーを認証してしまいます。
セキュリティ研究者の Ozgun Kultekin は、別の脆弱性 CVE-2016-6210 を修正するために 2016 年に導入されたパッチに起因するこの問題を発見しました。ユーザー名列挙(username enumeration)に対する修正は、意図せずパスワード処理における論理エラーを生み出しました。入力サイズが大きすぎるためにハッシュ操作が失敗すると、OpenSSH はアスタリスク文字を返します。その後、デーモンはこの結果を、無効化されたアカウントのパスワードフィールドに保存されているアスタリスクと比較し、一致を成功したログインとして解釈します。
脅威インテリジェンス企業 Previdian は、CVE の公開直後に最初の悪用試行を観察しました。テレメトリデータにより、日本にジオロケートされた IP アドレスからの 8 回の試行が特定されました。攻撃者は過大なパスワードを使用して認証をバイパスし、非対話型 SSH セッションを通じて id、uname、hostname などの偵察コマンドを実行しました。Previdian は、これらの試行が Alpine Linux を実行しているハニーポット上で successful root access(root アクセスの成功)をもたらしたことを確認しました。
仕組み
コアとなるメカニズムは、意図的にロックされているか、パスワードなしで設定されているアカウントに対する OpenSSH のパスワード検証の処理方法に基づいています。これらの場合、システムはパスワードベースのログインが無効であることを示すため、パスワードフィールドにアスタリスク (*) を保存します。通常、あらゆるパスワード試行は失敗すべきです。しかし、攻撃者が期待されるバッファサイズを超えるパスワード文字列を提供すると、内部ハッシュ関数は適切に失敗しますが、同じアスタリスク文字を返します。
sshd デーモンは、正当なハッシュ失敗と保存されたプレースホルダーを区別しません。失敗したハッシュ操作から返されたアスタリスクを見て、それをアカウントのパスワードフィールドにあるアスタリスクと照合します。この論理的衝突により、認証モジュールはアクセスを許可するように騙されます。このエクスプロイトは、パスワードフィールドが明示的にアスタリスクに設定されているアカウントでのみ機能します。有効なパスワードハッシュを持つアカウントや、認証チェックに PAM を使用しているアカウントには影響しません。
この挙動は、OpenSSH と musl C ライブラリの相互作用に特異的です。glibc ライブラリ、Dropbear SSH、または非 Linux オペレーティングシステムを使用するシステムは影響を受けません。さらに、パスワードチェックを PAM に委譲するシステムは安全なままです。なぜなら、PAM は検証ロジックを異なる方法で処理し、OpenSSH 自体内の欠陥のある比較を回避するためです。
主要な詳細
- 脆弱性 ID: CVE-2026-123158、CVSS スコアは 8.1。
- 影響を受けるシステム: PAM が無効化された状態で musl libc 上の OpenSSH を使用している Linux システム。特に Alpine Linux のデフォルト設定。
- エクスプロイト手法: パスワードが無効化されたアカウントに対し、257 バイトから 1,024 バイトの任意のパスワードを送信すること。
- パッチバージョン: OpenSSH 10.6p2 で修正済み。
- 積極的な悪用: 公開後 9 時間未満で最初の試行が観測され、ハニーポット上での root アクセスが確認された。
- 制限事項: glibc ベースのディストリビューション、Dropbear、または認証に PAM を使用しているシステムには影響しない。
なぜ重要なのか
クラウドインフラストラクチャを管理するエンジニアリングチームにとって、この脆弱性は軽量コンテナ環境におけるデフォルト設定に関連するリスクを強調しています。Alpine Linux はフットプリントが小さいため、Docker コンテナや Kubernetes クラスターで広く使用されています。これらのインスタンスが SSH ポートを公開し、パスワードフィールドを適切に無効化したり PAM を有効化したりせずに鍵のみによる認証に依存している場合、即時の乗っ取りに対して脆弱になります。悪用の速さは、自動化されたスキャナーがすでにこの特定の欠陥を狙っていることを示しています。
影響は初期アクセスにとどまりません。Safe Security が指摘したように、攻撃が成功すると侵害されたアカウントの権限が付与されます。ターゲットが root アカウントまたは昇格した権限を持つサービスアカウントの場合、攻撃者はデプロイメント資格情報、アプリケーションシークレット、接続されたインフラストラクチャにアクセスできます。これはネットワーク内での横方向移動を促進し、広範なサービス障害やデータ流出につながる可能性があります。このエクスプロイトには盗まれた資格情報が不要であるという事実が、公開されているサービスにとって特に危険であることを意味します。
対処法
- 直ちに OpenSSH 10.6p2 にアップグレードするか、お使いの Linux ディストリビューションが提供するパッチ適用済みパッケージを適用してください。
- 更新後に sshd サービスを再起動し、新しいバージョンがアクティブであることを確認してください。
/var/log/messagesを確認し、root や alpine など、パスワードを受け入れるべきではないアカウントで "Accepted password for" というエントリーがないか調べてください。- 公開されているマシンで侵害の兆候がないか、
doasの使用状況、最近作成されたユーザー、ファイル、および authorized keys をレビューしてください。 - ログに基づいて不正ログインの可能性を排除できない場合は、マシンが侵害されているものとして扱い、隔離してください。
- ディストリビューションがサポートしている場合は、PAM の有効化を検討してください。これにより認証フローが変更され、脆弱性が緩和されます。



