サイバー犯罪者が、OpenSSHに存在する10年前の重大な脆弱性を悪用しています。この脆弱性を突かれると、特定のLinuxシステムでパスワード認証を回避され、バックドアを仕込まれる恐れがあります。脆弱性はCVE-2026-123158(CVSS 8.1)として追跡されており、通称はSSHoleです。影響を受けるのは、muslのC標準ライブラリ上で動作し、特定の認証設定を使用しているOpenSSHです。
Security研究者のÖzgün Kültekin氏がこの問題を発見し、OpenSSHが修正版を公開した11月5日に脆弱性を公表しました。問題の起源は、2016年のOpenSSHの変更にさかのぼります。この変更は、認証応答時間を測定して有効なアカウントを特定できてしまうユーザー名列挙の脆弱性CVE-2016-6210への対処として行われたものでした。
問題の仕組み
Linux管理者は、/etc/shadowファイルのアカウントのパスワード欄にアスタリスク(*)を入れることで、パスワードによるログインを無効化できます。ところが、muslのcrypt()パスワードハッシュ関数は、ハッシュ化に失敗した場合にもアスタリスクを返します。たとえば、257〜1,024バイトのパスワードが送信された場合がこれに当たります。
OpenSSHはこのエラー値を、誤ってパスワードハッシュの一致と判断し、ログインを許可してしまいます。悪用には、SSHパスワード認証が有効であること、PAM(Pluggable Authentication Modules)認証が無効であること、パスワード欄にアスタリスクが入ったアカウントが存在すること、そして$5$または$6$のパスワードハッシュを持つ別のローカルアカウントが少なくとも1つ存在することが条件となります。
この条件を満たすmuslベースのLinuxシステムが影響を受けます。Alpine Linuxのほか、OpenWrt、Buildroot、Yoctoの一部の構成も該当する可能性があります。一方、glibcを使用するDebianやUbuntu、PAMを使用するOpenSSH環境、OpenWrtが標準で採用するDropbear SSHサーバーは影響を受けません。
コンテナのベースにAlpineを使っているだけで、アプリケーションがSSHoleにさらされるわけではありません。外部から到達可能な脆弱なSSHサーバーが動作しており、かつ前述の認証条件を満たしている場合に限られます。
AWSやAzure向けの古いAlpine Tiny Cloudイメージの一部は、特に危険な状態にあります。標準のalpineアカウントがパスワードなしでdoasを使えるためです。有効なパスワードハッシュを持つ別のアカウントが存在すれば、攻撃者がroot権限を取得できる可能性があります。
攻撃者はPython製バックドアの設置を試行
OpenSSHは2026年11月5日、この脆弱性を修正したバージョン10.6p2を公開しました。その約4時間後には、概念実証(PoC)の攻撃コードが公開されています。セキュリティ企業のwatchTowrは11月6日、ボットネットや暗号資産マイニングに関連する悪用を確認しました。
予想どおり、watchTowr IntelはOpenSSH認証バイパスの脆弱性「SSHole」(CVE-2026-123158)の悪用を観測しています。
今のところはボットネットと暗号資産マイナーによるものです。
私たちは、この先に何が起きるかに注目しています。pic.twitter.com/Z9Nju3pJoPStudySecurity
— watchTowr (@watchtowrcyber) 2026年11月6日
GreyNoiseは、11月7日のUTC 00:46にSSHoleによる最初の攻撃成功を検知しました。この攻撃では、6つのIPアドレスからGreyNoise自身の脆弱なセンサーに対し、18件の攻撃チェーンが成功しています。
攻撃者は、実行中のプロセスやコンテナを調べ、クラウドのメタデータサービスで公開されている情報を探しました。さらに、パスワードハッシュやroot用のSSH鍵へのアクセスも試みています。アクセスを維持するため、自分たちの鍵をauthorized_keysファイルに仕込もうとする動きもありました。
あるケースでは、root権限を奪った攻撃者が、Python製のインプラント「TAC Agent」を設置しました。シェルコマンドの実行、システム情報の収集、ファイル転送が可能なツールです。GreyNoiseによると、このインプラントはコマンド&コントロール(C2)サーバーへの登録に失敗し、タスクを受け取ることはありませんでした。インプラントには中国語のコメント、ログ、エラーメッセージが含まれていましたが、これだけでは攻撃の背後にいる人物を特定できません。
SSH関連の活動量は、確認された悪用の件数をはるかに上回っています。GreyNoiseは、ポート22へのスキャンを4,070万件、SSHセッションの試行を3,010万件観測しました。ただし、これらすべてをSSHoleによるものと断定することはできていません。
GreyNoiseは、共通のインフラやツール、侵害したシステム上での行動に基づき、一部の活動を「GT10」という名称でまとめています。同社は、他の攻撃者もSSHoleを悪用していると述べています。
Previdianは別途、15のIPアドレスから24件の悪用試行があったと報告しています。4つのセンサーで11カ国からの活動も観測しました。フィンランドの security企業Defusedは、少数の攻撃者がこの脆弱性を試していると報告しましたが、活動は広範囲には及んでいないとしています。米国のサイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)は11月9日、CVE-2026-123158を「既知の悪用された脆弱性(KEV)カタログ」に追加しました。
StudySecurity
アップデートとパッチの詳細
影響範囲は限られるものの、SSHoleを突かれると、脆弱なシステムのパスワード認証を回避されてしまいます。そのため、速やかなパッチ適用が重要です。SSHoleの修正はOpenSSH 10.6p2に含まれています。
管理者は、このバージョン、または利用しているLinuxディストリビューションが提供する修正済みパッケージを導入してください。Alpineは、バージョン3.16〜3.24の修正済みパッケージ(3.21.10、3.22.8、3.23.8、3.24.4を含む)を公開しています。更新後はSSHサービスを再起動する必要があります。パッケージを導入しただけでは、稼働中のデーモンは置き換わらないためです。
すぐに更新できない場合は、PasswordAuthentication noを設定してサービスを再起動すれば、SSHのパスワード認証を無効化できます。その前に、SSH鍵によるアクセスが機能することを必ず確認してください。
専門家、SSHoleの影響を軽視しないよう警告
ArmorCodeのシニアソリューションエンジニア、Ramy Rahman氏は、この脆弱性が限定的な条件から想定されるより多くのシステムに影響しうる理由について、Hackread.comに次のようにコメントしました。
StudySecurity
「表面的には、範囲の狭いバグです。動作するのは、パスワードログインが有効で、特定のアカウントが存在する、ある種の軽量Linux環境に限られます。しかし、範囲が狭いからといって影響が小さいとは限りません。Alpineはコンテナや軽量インフラで定番のベースイメージです。このため、同様の欠陥が、チームが稼働していることを忘れているような数百のイメージに埋め込まれている可能性があります。」
「この脆弱性が興味深いのは、それぞれ理にかなった2つの動作が衝突している点です。あるC標準ライブラリは、エラーとしてアスタリスクを返します。一方で、パスワードを持たないアカウントは、鍵認証のみのユーザーであればそれが望ましい設定ですが、『パスワードなし』を示すアスタリスクを保存します。エラー値と保存された値が一致してしまい、扉が開いてしまうのです。」
「ここには、典型的なメモリ安全性のバグはありません。コンポーネント間の前提のずれが原因です。報告によれば、約10年間見過ごされてきました。その一因は、このコードが主に1つのOSと1つのC標準ライブラリでテストされてきたことにあります。主流のソフトウェアでも、テストが手薄な環境で動かすと盲点が生じうることを思い出させる事例です。」
「OpenSSH 10.6p2、またはディストリビューションの修正済みパッケージにパッチを適用し、sshdを再起動してください。パッケージを更新しても稼働中のデーモンは置き換わらないため、この手順は見落としやすいものです。」
「ただし、パッチ適用だけで終わらせないでください。パスワードを持つはずのないアカウントへのパスワードログインがないか、認証ログを遡って確認してください。ログインの可能性を否定できない場合は、そのホストが侵害されたものとして扱うべきです。」
「デフォルト設定は重要です。OpenSSHではパスワード認証が初期状態で有効になっています。そのため、『やるべきこと』リストに載せたままになっているハードニングを実施すれば、今すぐ確実にリスクを減らせます。」
翻訳元: https://hackread.com/hackers-exploit-old-openssh-bypass-linux-logins/

