OpenSSHの脆弱性、公表からわずか数時間で悪用が確認される(CVE-2026-123158)

リモートの攻撃者がAlpine LinuxなどmuslベースのシステムでパスワードなしアカウントにログインできてしまうOpenSSHの脆弱性が、実際に悪用されています。脅威インテリジェンス企業のPrevidianが警告しました。

Image

この脆弱性(CVE-2026-123158)は、Wakefieldの研究者Özgün Kültekin氏が「sshole」と名付けたもので、11月5日公開のOpenSSH 10.6p2で修正されました。

Alpine Linuxチームはセキュリティ勧告で、「SSHポートに到達できる攻撃者は、パスワードを知らなくてもログインできます。接続は1回で済み、毎回成功し、再試行も必要ありません」と説明しています。

Previdianの創設者Ryan Dewhurst氏は金曜日、同社のセンサーがこの脆弱性を狙う攻撃を検知し、そのうち少なくとも1件は侵入に成功したと明らかにしました。

同氏はHelp Net Securityに対し、「最初の攻撃試行は、CVEの公開から9時間足らずで確認されました。実際のAlpine LinuxとOpenSSHを動かしていたPrevidianのハニーポットでは、root権限の奪取に成功したことも確認しています」と語りました。

Dewhurst氏は次のように続けます。「送信元IPアドレス89.116.89[.]18は、過大な長さのパスワードで認証を回避し、非対話型のSSHセッションを通じてid、uname、hostnameといった偵察コマンドを実行しました」

これまでに同社が確認した攻撃試行は8件です。いずれも日本国内のこの1つのアドレスから発信され、1台のセンサーが捉えました。

Previdianはこの脆弱性を自社の悪用確認済み脆弱性リストに加えましたが、CISAはKEVカタログには掲載していません。

Dewhurst氏は、攻撃者はAIの助けでますます素早くなっていると見ています。「この脆弱性は特に悪用が容易で、その分、攻撃までの期間が大幅に短くなりました」

1つの文字に2つの意味

この脆弱性を発見したKültekin氏は、くだけた小文字だけの文体で解説するサイトを公開しました。

同氏は次のように書いています。「パスワードを一切受け付けないはずのアカウント(root、鍵認証のみのデプロイ用ユーザー、LDAPユーザー、AlpineのAWSおよびAzureイメージのデフォルトユーザー)が、256文字を超えるパスワードならどれでも受け付けてしまう。そう、どんなパスワードでもだ。本当に。わかってる。そうなんだ」

Kültekin氏は、原因をOpenSSHと、Alpineが基盤とするC標準ライブラリmuslの過去の設計判断にあるとしています。該当するアカウントは、/etc/shadowでパスワードハッシュの代わりに「*」を持っています。

同氏の説明によると、2016年にサーバー上のユーザー名の有無を攻撃者が見分けられるタイミングの問題(CVE-2016-6210)を修正するため、OpenSSHはsshdを変更しました。有効なハッシュを持たないアカウントでは、別のアカウントのソルトを借りて、それでもパスワードをハッシュ化するようにしたのです。

一方、muslのcrypt()関数は2012年以降、256バイトを超えるSHA-256およびSHA-512パスワードを拒否し、失敗時に「*」を返します。この出力が、パスワードなしアカウントに保存されている「*」と一致してしまい、sshdはユーザーを通してしまいます。

Kültekin氏は考えつく限りの組み合わせでsshdをビルドし、約1万7,600件の変則的なログイン試行を浴びせました。拒否すべきログインを許したのは、PAMなしのmuslビルドだけでした。ただし、1人で行ったわけではありません。同氏は「あ、『僕が』って言った?ごめん。エージェントの群れを使ったんだ。たくさんね。その話はやめておこう」と認めています。

影響を受けるシステム

この脆弱性は、muslのC標準ライブラリを使い、PAMでパスワードを検証しないLinuxシステム上の、10.6p2より前のOpenSSHに影響します。Alpine Linuxは既定のopenssh-serverパッケージをこの構成でビルドしています。Kültekin氏は、確認すべき他のmuslベースのシステムとしてOpenWrt、Buildroot、Yoctoを挙げ、さらに「これまでにpullしたDockerイメージの多く」も対象になりうるとしています。

攻撃には、パスワードログインが有効であること(OpenSSHの既定値)に加え、パスワードフィールドが「*」のみのアカウントと、パスワードハッシュを持つ別のローカルアカウントが必要です。SOCRadarによると、パスワードなしで作成された鍵認証のみのユーザーや、musl-nscd経由でディレクトリサービスから取り込まれたユーザーが、標的アカウントの条件に当てはまります。

rootはAlpine 3.16前後から「*」付きで出荷されています。ただし、管理者が変更しない限り、OpenSSHの既定のPermitRootLogin設定により直接ログインはできません。SOCRadarは「間接的なroot権限の奪取のほうが大きな懸念です」と指摘しています。

Kültekin氏は、「AlpineのAWSおよびAzureの公式イメージでは、これがデフォルトのalpineユーザーに当たる。このユーザーはパスワードなしでdoasを使えるので、実質rootだ」と説明しました。SOCRadarは、影響を受けるtiny-cloudイメージをバージョン3.18.11から3.24.3までとしています。

glibcベースのシステム(Debian、Ubuntu、Fedoraなど)、PAM経由の構成、Dropbear、OpenBSDは安全であることを、同氏は確認しています。

パッチ適用とサービス再起動を

OpenSSH 10.6p2でこの問題は修正されます。SOCRadarによると、Alpineは3.16からedgeまですべてのブランチで、同日中に修正済みパッケージを公開しました。同社は、アップデートをインストールしても稼働中のsshdは置き換わらず、サービスを再起動するまで古いバイナリが接続を受け付け続ける点にも注意を促しています。

PAMなしのmuslベースLinuxを運用している場合は、「読むのをやめて、PasswordAuthentication=noを設定するか、これらのシステムのSSHを直ちに無効にしてください」と、OpenSSH開発者のDamien Miller氏がMastodonで呼びかけました。

侵入の兆候を見つけるため、SOCRadarは次の対応を勧めています。/var/log/messagesで、alpine、root、鍵認証のみのユーザーなどパスワードを持たないアカウントに対する「Accepted password for」のエントリを検索します。あわせて、doasの使用状況、最近作成されたユーザー、authorized_keysファイルも確認してください。ログインの可能性を排除できない場合は、そのマシンは侵害されたものとして扱うべきです。

この脆弱性のPoC(概念実証)エクスプロイトはGitHubに投稿されています。ただしPrevidianは、未検証でありマルウェアが含まれている恐れがあるとして注意を呼びかけています。

翻訳元: https://www.helpnetsecurity.com/2026/11/06/openssh-sshole-cve-2026-123158-exploitation/

本記事は helpnetsecurity.com の記事を翻訳・要約したものです。