OpenSSHにパスワード回避の欠陥、Alpineなどが対象

OpenSSH に、
脆弱性の概要
- 対象
- OpenSSH
- 悪用
- 確認されていない
- 影響
- パスワードを知らなくてもログインされる
- 修正版
- 修正版あり
- 公表元
- OpenSSH / Alpine Linux
| 製品 | 対象のバージョン | 修正版 |
|---|---|---|
| OpenSSH(Linux、musl、PAM なし) | 10.6p2 より前 | 10.6p2 |
| Alpine edge | 修正版より前 | 10.6_p2-r0 |
| Alpine 3.24 | 修正版より前 | 10.3_p1-r2 |
| Alpine 3.23 | 修正版より前 | 10.2_p1-r1 |
| Alpine 3.22 | 修正版より前 | 10.0_p1-r11 |
| Alpine 3.21 | 修正版より前 | 9.9_p2-r1 |
| Alpine 3.20 | 修正版より前 | 9.7_p1-r6 |
| Alpine 3.19 | 修正版より前 | 9.6_p1-r3 |
| Ubuntu・Debian など glibc の Linux | 対象外 | この欠陥の更新は不要 |
やること
OpenSSH の sshd(SSH の接続を受けるプログラム)を動かす Linux のうち、musl という標準ライブラリを使うものは、すぐに更新してください。代表は Alpine Linux です。
- Alpine は
apk upgrade -U -aで更新し、rc-service sshd restartで sshd を再起動してください。パッケージを更新しただけでは、動いている sshd は入れ替わりません - Alpine の修正版は上の表のとおりで、本家の 10.6p2 まで上がらなくても修正は入っています。サポートが終わった版も、Alpine の告知に修正版が載っています(3.18 は 9.3_p2-r4、3.17 は 9.1_p1-r7、3.16 は 9.0_p1-r6)
- すぐに更新できない場合は、sshd の設定を PasswordAuthentication no にして再起動してください。パスワードでは入れなくなるので、鍵のログインを用意してから変えてください。今の接続を切らずに、別の接続で鍵のログインを試すと安全です。変更後は
sshd -T | grep -i passwordauthenticationで no と出ることを確かめてください
パスワード欄の「*」を「!」に書き換えるのは避けてください。発見者によると、PAM を使わない環境では「!」にすると鍵のログインもできなくなります。
Ubuntu と Debian は glibc を使うので、この欠陥の対象外です。PAM を使う環境や、Linux 以外の OS も対象外です。Ubuntu の OpenSSH の別の修正はOpenSSH 10.6の欠陥、Ubuntuは版そのままで9件を修正にまとめています。
何が危ないのか
CVE-2026-123158 はパスワードの確認を通り抜けられる欠陥です。パスワード欄が「*」のアカウントは本来パスワードでは入れません。ところが musl の環境では、とても長い文字列を送ると内容に関係なく正しいと判定されることがあります。鍵だけで使うアカウントや Alpine の root のパスワード欄がこの形です。
起きる順番はこうです。sshd は受け取ったパスワードを crypt という関数で変換し、/etc/shadow に保存された値と比べます。「*」はどんなパスワードを変換しても同じ値にならないので、ログインを止める印として使われてきました。ところが musl の crypt は処理に失敗すると「*」を返します。SHA-512 の処理には256バイトの上限があるので、これを超えるパスワードを送ると失敗し、その結果の「*」が保存された「*」と一致します。sshd はこれを正しいパスワードと判定します。発見者の解説では、通る長さは257〜1,024文字です。修正版の sshd は、保存された値が4文字未満のときはログインを通しません。
SSH のポートに届く相手なら、ログイン情報がなくても試せます。Alpine は、攻撃は1回の接続で済み、毎回成功すると説明しています。
OpenSSH の開発者は、原因は OpenSSH の外にあるとしながら、sshd の側で防ぐ処理を入れました。問題を知ってから約1日で公開したと説明し、AI エージェントが同じ欠陥を短い間に見つけ直す例が続いていることを理由に挙げています。CVSS は 8.1 です。
悪用の確認は公表されておらず、発見者の解説にも実際の悪用の報告はありません。ただし CVE の記録には再現用の公開リポジトリへのリンクが載っています。CISA がこの記録に付けた評価も、悪用の段階は実証コードがある状態(poc)です。
対象
次の条件がすべてそろうと対象です。
- sshd が musl の上で動いている
- PAM を使っていない。Alpine の openssh-server は既定で使いません。openssh-server-pam でも UsePAM no なら対象です
- パスワードのログインが有効になっている。既定で有効です
- パスワード欄が「
*」のアカウントがある - 別のローカルアカウントに $5$ か $6$ で始まるパスワードのハッシュがある。sshd が照合に、そのアカウントのソルト(変換に混ぜる値)を使います
パスワードを1つも設定していない初期状態のサーバーは対象外です。sshd を動かしていないコンテナ、PasswordAuthentication no のサーバー、パスワード欄が「!」のアカウントも対象外です。
Alpine の root に直接入れるのは、PermitRootLogin yes にしている場合だけです。ただし、別のログイン用アカウントから doas で root になれるなら、root まで届きます。
発見者は Alpine の公式 AWS・Azure イメージの既定ユーザー alpine も、条件がそろえば対象だとしています。このユーザーはパスワードなしで管理者の操作ができます。Alpine によると、3.18.11 から 3.24.3 までの公式イメージ(tiny-cloud)は起動直後は安全ですが、管理者がコンソール用のパスワードを設定するなどして $6$ のハッシュができると、攻撃できる状態になります。修正が入ったイメージは 3.21.10、3.22.8、3.23.8、3.24.4 以降です。
侵入されていないかの確認
更新のあとは過去にログインされていないかも見てください。Alpine は /var/log/messages で、パスワードを持たないアカウントに Accepted password for の記録がないかを確かめるよう案内しています。見るのは alpine、root、鍵だけで使うアカウントなどです。doas の利用、最近作られたユーザーやファイル、認証用の鍵の追加も調べます。ログインがなかったと言い切れないときは、その機械は侵害されたものとして扱うよう求めています。
自社で確かめること
- OS を確かめるサーバーやコンテナが Alpine など musl を使う Linux かどうかを調べてください。発見者は OpenWrt、Buildroot、Yocto も挙げています。
- コンテナの中も見る発見者は、多くの Docker イメージが Alpine をもとにしていると説明しています。その中で sshd を動かしていないかを見てください。
- SSH の設定を見るUsePAM と PasswordAuthentication の設定を確かめ、/etc/shadow でパスワード欄が「*」のアカウントがないかも見てください。
出典
- OpenSSH「OpenSSH 10.6p2 release notes」
- OpenSSH 開発者 Damien Miller 氏の告知(openssh-unix-dev)
- Alpine Linux「CVE-2026-123158」
- CVE 記録「CVE-2026-123158」
- oss-security「sshole: password authentication bypass」
- 発見者 Özgün Kültekin 氏の解説
- Alpine Linux「Security advisory: openssh-server password authentication bypass」
- openssh-portable「avoid password authn bypass」(commit 4353fdc)



コメント 0
まだコメントはありません。