musl libc環境のsshdで認証回避の脆弱性 ─ OpenSSH 10.6p2などで対策
Alpine LinuxのPAM無効構成が影響、256バイトを超えるパスワード入力で未設定アカウントへログイン可能
1:01
OpenSSH ProjectとAlpine Linux Teamは11月5日(現地時間)、musl libcを使用し、PAMを無効化した一部のLinux環境で、sshdのパスワード認証を回避できる脆弱性「CVE-2026-123158」を公表した。対策としてPortable OpenSSH 10.6p2と、Alpine Linuxの各安定系列向け更新パッケージが公開されている。
「CVE-2026-123158」の深刻度はCVSS v3.1で8.1(High)。影響する構成では、攻撃者がSSHポートへ接続できれば、対象アカウントのパスワードを知らなくてもログインできる可能性がある。
PAMを使用しないsshdは、入力されたパスワードをCライブラリの「crypt()」でハッシュ化し、保存されているパスワードフィールドと比較する。musl libcの「crypt()」は、256バイトを超えるパスワードを処理できない場合にエラーを示す文字列「*」を返す。この値が、パスワード未設定アカウントのフィールドに格納されている「*」と一致するため、認証が成功したものとして扱われる。
Alpine Linuxの通常のopenssh-serverはPAMなしで構築されているため、代表的な影響環境となる。「openssh-server-pam」でも「UsePAM no」とした場合は影響を受ける。一方、glibcを使用するLinux、Linux以外のOS、PAMによるパスワード認証を使用する環境、パスワード認証を無効化している環境は影響を受けない。
Alpine Linuxの公式tiny-cloudイメージでは、パスワードフィールドが「*」の「alpine」ユーザと、パスワードなしで利用できる「doas」が設定されている版がある。初期状態では攻撃条件を満たさないが、管理者が別のアカウントへパスワードを設定するなどして「$6$」形式のハッシュが作成されると、alpineユーザーへのログインとroot権限への昇格が可能になるおそれがある。
Alpine Linux 3.21.10、3.22.8、3.23.8、3.24.4以降には修正パッケージが収録されている。edgeではOpenSSH 10.6_p2-r0、安定系列では各系列のOpenSSHに同じ対策をバックポートしたパッケージが提供された。通常サポートを終了したAlpine Linux 3.16~3.20にも修正パッケージが公開されている。
Alpine Linuxでは「apk upgrade -U -a」で更新し、その後「rc-service sshd restart」でsshdを再起動する必要がある。パッケージを更新しただけでは動作中のsshdは置き換わらないので注意が必要。
ただちに更新できない場合は、「PasswordAuthentication no」を設定してパスワード認証を無効化し、設定確認後にsshdを再起動する。変更前に公開鍵認証でログインできることを確認し、別の接続で動作を確認するまでは現在の管理セッションを閉じないことが推奨される。
(川原 龍人/びぎねっと)
[関連リンク]
セキュリティ情報(alpinelinux.org)
Portable OpenSSH 10.6p2リリースノート
Portable OpenSSH 10.6p2リリースアナウンス
CVE-2026-123158
この記事をシェアしてください
