OpenSSHにパスワード認証回避の脆弱性、Alpine Linuxの構成で成立
AI生成記事についてこの記事は公開情報をもとにAIが自動生成しています。事実確認を行ったうえで公開していますが、正確性を保証するものではありません。最終的な判断は記事末尾の出典元をご確認ください。
2026年11月5日、OpenSSHは、Linux上でmusl libcを使いPAMなしで動くsshdにパスワード認証を回避される脆弱性があるとして修正版を公開しました。CVE-2026-123158として識別され、OpenSSHは10.6p2のリリースノートで「critical」な回避策としています。NVDは公開時点で分析未了でしたが、MITRE評価のCVSS基本値は8.1(CVSS 3.1、攻撃条件の複雑さはHigh)です。
成立する構成と仕組み
対象となるのは、Linux上でmusl libcとPAMなしのsshd(修正未適用)を組み合わせた構成です。攻撃者がSSHポートに到達し、パスワード欄が「*」のアカウント名と257〜1024バイトの長いパスワードでパスワード認証を試すと、1回の接続で認証が成立し、再試行は要りません。PAMなしのsshdは試行パスワードをcrypt()でハッシュ化しますが、保存値「*」は短くsaltを含まないため、$5$または$6$のハッシュを持つ別アカウントのsaltを借ります。muslのcrypt()は鍵が256バイトを超えると失敗し、エラーの印として文字列「*」を返します。この「*」がパスワードなしのアカウントの保存値と同じ文字列であるため、sshdの比較が一致し、パスワードを知らないまま認証が成功します。
成立の前提として、Alpineのopenssh-server(PAMなしでビルド)を使っているかopenssh-server-pamをUsePAM noで使っていること、PasswordAuthenticationがyes(OpenSSHの既定)であること、パスワード欄が「*」のアカウントがあること、saltを借りられる$5$または$6$のパスワードハッシュを持つローカルアカウントが1つ以上あること、ネットワークからSSHポートに到達できることが挙げられています。Check Pointは自社の検証で、saltを借りる別アカウントは有効で実際のパスワードを持つ必要があり、ハッシュが保存されているだけでは足りないとしています。rootは既定のPermitRootLogin prohibit-passwordで守られ、PermitRootLogin yesのときだけ到達できますが、パスワード不要のdoasなど攻撃者が満たせる条件であればroot権限まで至ります。
影響範囲と修正
OpenSSHは、非Linux、Linux/glibc、パスワード認証にPAMを使うLinuxには存在しない脆弱性としています。muslは、DropbearなどOpenSSH以外は影響を受けないとしています。修正が行われたのはOpenSSH(Portable)のsshdの10.6p2で、NVDはmusl libcをPAMなしで使う10.6p2より前のLinux上のsshdを対象としています。Alpine Linuxは確認した全リリースが対象で、3.21以前はサポートが終了していますが、3.16まで修正パッケージが公開されました。ポイントリリース3.21.10、3.22.8、3.23.8、3.24.4にも修正パッケージが含まれます。
責任の所在をめぐる見解
責任の所在は、OpenSSHとmuslで見解が分かれています。OpenSSHは、根本原因はsshdの外にあるが、sshd経由で悪用でき、sshd側で回避できるとし、保存値が短すぎる場合に照合しない処理を追加しました。muslは、muslのバグではなく呼び出し側の誤用との立場で、この仕組みは次のリリースサイクルで変更される見込みとし、詳細は追って示すとしています。OpenSSHは11月4日に脆弱性を把握し、AIエージェントによる急速な再発見が起きており、長い非公開期間は攻撃者を利するとして即時公開に踏み切ったと説明しています。KEVには未登録で、CISAのSSVCはexploitation: pocです。
出典元:OpenSSHのパスワード認証回避の脆弱性 CVE-2026-123158 についてまとめてみた(公開日:2026-11-06T03:01:49.000Z)