ニュース

長いパスワードで認証を回避する脆弱性「*sshole」、「Alpine Linux」などに影響

2016年から存在、「OpenSSH 10.6p2」で対策

発見者による解説サイト「*sshole」

 「OpenSSH」に関連する脆弱性「*sshole」が報告され、影響する製品で対策が急がれている。

 脆弱性の内容は、本来はパスワードでログインできないはずのアカウント(パスワード欄が『*』になっている鍵認証専用のユーザーなど)に、257~1,024バイトの長いパスワードを送ると、内容にかかわらずログインできてしまうというもの。発見者によると、この問題は2016年から存在していたという。 「CVE-2026-123158」 として識別されており、「CVSS 3.1」の基本値は「8.1」(High)と評価されている。

 発見者によると、「musl libc」の「crypt()」関数は失敗すると『*』を返し、SHA-512方式は256バイトを超えるパスワードを受け付けない。「OpenSSH」(sshd)は2016年に「CVE-2016-6210」を修正した際、有効なハッシュがないアカウントには他のアカウントのソルト(ハッシュ計算時に加えるランダムな文字列)を借りて照合する処理を入れた。この処理と「musl」側の挙動が組み合わさり、長すぎるパスワードで返されるエラー文字列『*』が、アカウントのパスワード欄の『*』と一致して認証が通ってしまうという。

 「OpenSSH」の開発チームによると、脆弱性の根本原因は「sshd」そのものにあるわけではない。「musl libc」を用い、PAM(Pluggable Authentication Modules)を無効にしたLinux環境にのみ影響する複合的な問題だ(「glibc」を使う「Debian」や「Ubuntu」、「Fedora」、およびPAM経由でログインする環境は影響を受けない)。具体的には「Alpine Linux」などが該当するようで、その開発チームは以下の条件をすべて満たす環境が影響を受けるとしている。

  • PAMを使わずに「sshd」を実行している(「Alpine Linux」の「openssh-server」パッケージの既定。[openssh-server-pam]で[UsePAM no]としている場合も該当)
  • パスワード認証(PasswordAuthentication)が有効(「OpenSSH」の既定)
  • パスワード欄が『*』のアカウントがある(鍵認証専用のユーザー、ディレクトリサービス経由のユーザー、「Alpine Linux」3.16以降のrootなど)。ただし、rootへのパスワードログインは既定の設定では禁止されており、直接ログインには[PermitRootLogin yes]の設定も必要
  • 少なくとも1つのローカルアカウントが『$5$』『$6$』形式のパスワードハッシュをもつ

 とはいえ、本脆弱性が「sshd」経由で悪用可能で、「sshd」側で回避できるのは事実だ。そこで、対策版として11月5日付けで「OpenSSH 10.6p2」がリリースされている。「Alpine Linux」でも修正済みのパッケージが公開済み。対象環境では、修正版への更新後に「sshd」を再起動する必要がある。すぐに更新できない場合の緩和策も案内されている。

 なお、「OpenSSH」の開発チームは、AIツールが見つけたセキュリティ欠陥が他の研究者からも独立して発見・報告される例が相次いでいると指摘。決められた日時まで欠陥を公開しないようにする取り決め(エンバーゴ)があっても、公開を待つ間に攻撃者が同じ欠陥を発見・悪用する可能性はある。同チームは、当面は修正を次の予定リリースまでまとめて待つのではなく、より頻繁にリリースする方針を示している。


<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 79 75"><path d="M63 45.3v-20c0-4.1-1-7.3-3.2-9.7-2.1-2.4-5-3.7-8.5-3.7-4.1 0-7.2 1.6-9.3 4.7l-2 3.3-2-3.3c-2-3.1-5.1-4.7-9.2-4.7-3.5 0-6.4 1.3-8.6 3.7-2.1 2.4-3.1 5.6-3.1 9.7v20h8V25.9c0-4.1 1.7-6.2 5.2-6.2 3.8 0 5.8 2.5 5.8 7.4V37.7H44V27.1c0-4.9 1.9-7.4 5.8-7.4 3.5 0 5.2 2.1 5.2 6.2V45.3h8ZM74.7 16.6c.6 6 .1 15.7.1 17.3 0 .5-.1 4.8-.1 5.3-.7 11.5-8 16-15.6 17.5-.1 0-.2 0-.3 0-4.9 1-10 1.2-14.9 1.4-1.2 0-2.4 0-3.6 0-4.8 0-9.7-.6-14.4-1.7-.1 0-.1 0-.1 0s-.1 0-.1 0 0 .1 0 .1 0 0 0 0c.1 1.6.4 3.1 1 4.5.6 1.7 2.9 5.7 11.4 5.7 5 0 9.9-.6 14.8-1.7 0 0 0 0 0 0 .1 0 .1 0 .1 0 0 .1 0 .1 0 .1.1 0 .1 0 .1.1v5.6s0 .1-.1.1c0 0 0 0 0 .1-1.6 1.1-3.7 1.7-5.6 2.3-.8.3-1.6.5-2.4.7-7.5 1.7-15.4 1.3-22.7-1.2-6.8-2.4-13.8-8.2-15.5-15.2-.9-3.8-1.6-7.6-1.9-11.5-.6-5.8-.6-11.7-.8-17.5C3.9 24.5 4 20 4.9 16 6.7 7.9 14.1 2.2 22.3 1c1.4-.2 4.1-1 16.5-1h.1C51.4 0 56.7.8 58.1 1c8.4 1.2 15.5 7.5 16.6 15.6Z" fill="currentColor"/></svg>
Post by @damienmiller@hachyderm.io
View on Mastodon