HotGoにSMSログインの認証回避の脆弱性、修正も公開
HotGoの2.15.1までに、SMS認証コードを外部から指定でき、電話番号を知られると管理者を含むアカウントを乗っ取られる脆弱性が見つかりました。利用中なら版を確認して修正を取り込み、更新まではSMSログインの経路を遮断してください。
急ぎ度: 早めに
CVSS v3は8.1、v4は9.2で、認証なしで管理者の乗っ取りに至り、悪用の手順を説明した情報も公開されていますが、KEVへの記載は確認できず、修正コミットも出ています。
関係があるか
HotGoを自社サービスや社内システムの管理基盤に使い、SMS認証によるモバイルログインを有効にしている組織が対象です。管理画面をインターネットに公開している環境は、特に優先して確認してください。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| HotGo(bufanyun/hotgo) | 2.15.1以前のすべての版 | 修正コミットが公開されています。リリース版の版番号は、GitHubのリポジトリとベンダーの告知で確認してください。 |
確かめ方
- 1導入しているHotGoの版を、デプロイ時のタグ、リリース記録、コミットのハッシュで確認する。2.15.1以前なら対象です。
- 2SMSログイン(モバイルログイン)を有効にしているか、設定とルーティングを確認する。
- 3管理画面とAPIが、インターネットや取引先の回線から到達できる状態かを、リバースプロキシやファイアウォールの設定で確認する。
何が起きたか
HotGoのSMS認証に脆弱性があり、認証を受けていない第三者が、ログイン用のSMS認証コードを自分で決められます。利用者の携帯電話番号が分かれば、その人のアカウントでログインでき、管理者も例外ではありません。
原因は、認証コードの送信を受け付ける処理が、クライアントから渡された値をそのままコードとして採用することにあります。本来はサーバー側で作って利用者にだけ届けるべき値を、リクエストする側が決められる状態でした。分類はCWE-287(不適切な認証)です。
この脆弱性は2026年11月2日に公表されました。修正のコミットと、攻撃の流れを説明した情報がすでに公開されているため、公開されている管理画面は、見つかり次第狙われるとみられます。
攻撃の流れ
-
1
番号を把握
攻撃者が、乗っ取りたい利用者の携帯電話番号を入手する。
-
2
コードを指定
SMS送信の処理に、攻撃者が自分で決めた認証コードを渡して登録させる。
-
3
モバイルログイン
登録したコードを入力して、本人になりすましてログインする。
-
4
管理者権限で操作
管理者のアカウントなら、データの閲覧・変更・削除などを自由に行う。
どう悪用されるか
悪用に認証は要りません。ネットワーク経由で、SMS送信とモバイルログインの処理に届けば足り、利用者に何かをさせる必要もありません。攻撃者に必要なのは、標的とするアカウントの携帯電話番号だけです。CVSS v3で攻撃の難易度が高めに評価されているのは、この前提があるためです。
成功すると、そのアカウントの権限で管理画面を操作されます。管理者が狙われれば、保存された情報の閲覧、設定や内容の改ざん、データの削除まで及びます。機密性・完全性・可用性のすべてに高い影響が出ると評価されています。
今すぐやること
-
1
利用中の版を確認する
本番・検証を含め、HotGoを使っている環境を洗い出し、版が2.15.1以前かを確かめる。Gitで管理していれば、次のコマンドで取り込み済みのタグを確認できる。
git describe --tags -
2
修正を取り込む
ベンダーのリポジトリで公開されている修正を取り込み、リリース版が出ていればそれに更新する。カスタマイズしている場合は、差分を確認してからテスト環境で動作を見て、本番に反映する。
-
3
ログイン経路を絞る
更新が終わるまでは、管理画面とAPIを社内ネットワークやVPNなど、信頼できる経路からだけ使えるようにする。
-
4
侵害の跡を調べる
公表は11月2日なので、調べる期間はそれ以前も含める。アクセスログで、SMS送信(/admin/sms/send)とモバイルログイン(/admin/site/mobileLogin)への不審な呼び出しがないか確認する。管理者アカウントの身に覚えのないログイン、権限や設定の変更も、あわせて見る。
-
5
不審があればアカウントを保護する
心当たりのないログインが見つかったら、該当アカウントのパスワードと発行済みのセッションを無効にし、操作履歴を調べて影響範囲を確かめる。
すぐ更新できないとき
すぐに更新できないときは、リバースプロキシやWAFで、SMS送信とモバイルログインのパスへの外部アクセスを遮断してください。SMSログインを使っていない組織は、この遮断だけで経路を断てます。使っている場合はパスワードなど別のログイン方法に切り替えてください。なお、SMS送信の処理をほかの機能が使っていると、その機能にも影響が出ます。遮断前に、利用箇所を確認してください。
背景
HotGoは、Goのサーバー側と管理画面のフロントを備えたオープンソースの開発基盤です。ユーザー、権限、ログなどの管理機能がそろっており、自社サービスの管理画面や業務システムの土台として組み込まれます。管理者アカウントを奪われると、その上で動く業務データをまとめて扱われるため、認証まわりの欠陥はそのまま全体の侵害につながります。
今回の脆弱性は、SMSのワンタイムコードの値をサーバーでなくクライアント側が決められる点に特徴があります。コードを正しく作って照合する仕組みがあっても、照合の相手を攻撃者が決められるなら意味を成しません。パスワードを使わない手軽なログインは、電話番号さえ分かれば成立するため、その手軽さがそのままリスクになります。
よくある質問
Q.SMSログインを使っていなければ影響はありませんか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 修正版 |
|---|---|---|---|
| bufanyun | HotGo |
2.8.4 〜 2.15.1 |
— |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
HotGo 2.8.4 through 2.15.1 contains an authentication bypass vulnerability that allows unauthenticated attackers to choose the SMS login verification code by supplying the Code field to /admin/sms/send. Attackers who know a user's mobile number can set a known code and sign in through /admin/site/mobileLogin to take over accounts, including administrators.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory vulncheck.com
- advisory nvd.nist.gov
- advisory github.com
- package github.com
- patch github.com
- report github.com
- report vul.yulun.ac.cn
- web github.com
- web github.com
- web vul.yulun.ac.cn
- web github.com