Hoppscotchに深刻な脆弱性——未認証の攻撃者がJWTシークレットを上書き可能

広く利用されているオープンソースのAPI開発プラットフォーム「Hoppscotch」のセルフホスト版において、最高深刻度の脆弱性が公開されました。

CVE-2026-50160として追跡されるこの脆弱性は、CVSS 3.1ベーススコアが満点の10.0を記録しています。未認証の攻撃者が1回のHTTPリクエストだけでJWT署名シークレットを上書きし、対象サーバーを完全に制御できてしまいます。

Hoppscotchは2026年5月28日、GitHubセキュリティアドバイザリ GHSA-j542-4rch-8hwfを通じて詳細を公開しました。この脆弱性はバージョン2026.4.1以前のすべてのセルフホスト型バックエンドデプロイメントに影響し、バージョン2026.5.0でパッチが提供されています。

根本的な原因は、POST /v1/onboarding/configエンドポイントに存在するCWE-915に分類される典型的なマスアサインメントの欠陥です。

バックエンドを管理するNestJSのValidationPipewhitelist: trueオプションなしで設定されているため、フレームワークはリクエストボディに含まれる未宣言の余分なプロパティを除去しません。

そのため攻撃者は、SaveOnboardingConfigRequest DTOに宣言されていないフィールドであるにもかかわらず、JWT_SECRETSESSION_SECRETを含む任意の設定キーをデータベースへ注入できてしまいます。

悪用を可能にしているのは、4つの独立した弱点の組み合わせです。主な欠陥はwhitelist: trueフラグの欠如であり、未宣言のプロパティがチェックを受けずに通過できてしまいます。

これらの余分なキーがサービス層に到達すると、infra-config.service.ts内の制限のないObject.entries(dto)イテレーションが、ランタイム検証を一切行わないTypeScriptキャストでDTOオブジェクト上のすべてのプロパティを処理します。

注入されたキーはその後、validateEnvValuesメソッドを難なく通過します。JWT_SECRETSESSION_SECRETdefault: breakケースに該当し、データベースへの書き込みがサイレントに許可されてしまうためです。

さらに、オンボーディングコントローラー自体に認証ガードが存在せず、usersCount === 0の条件さえ満たせば未認証のリクエストに対して完全に開放されています。

この攻撃が成立するのは、デプロイ完了からオンボーディング処理が終わるまでの短い時間帯に限られます——まさにセルフホスト型Hoppscotchインスタンスがインターネット上に露出しやすいタイミングです。

攻撃者はまずGET /v1/onboarding/statusを照会してオンボーディングが未完了であることを確認し、次に攻撃者が制御するJWT_SECRETSESSION_SECRETの値を正規のオンボーディングフィールドと組み合わせた単一の細工されたPOSTリクエストを送信します。

この攻撃は、新規インストールのHoppscotch AIO Dockerデプロイメント上でライブのProof-of-Conceptにより確認されており、攻撃後にデータベースクエリで上書きされたシークレットが検証されています。

攻撃者がJWT署名鍵を掌握すると、被害は急速に拡大します。管理者アカウントを含む任意のユーザーUIDに対して偽のJWTトークンを生成でき、有効な認証情報を一切必要とせずすべての認証ガードを突破できます。

侵害されたシークレットはデプロイメントを完全に再構築するまでデータベースに残り続けるため、正規の管理者がパスワードをリセットした後も、攻撃者は署名鍵の制御と永続的な管理者アクセスを維持し続けます。

すべてのユーザーワークスペース、APIコレクション、チームデータ、保存されたAPIキーは、認証済みのGraphQLクエリを通じてアクセス可能になります。さらにSESSION_SECRETを上書きすることで、すべてのアクティブユーザーセッションを無効化しながら、攻撃者は新たなセッションを自由に生成できます。

Hoppscotchはバックエンドバージョン2026.5.0でこの問題に対処しました。グローバルなValidationPipewhitelist: trueforbidNonWhitelisted: trueを有効化し、未宣言のプロパティがサービス層に到達する前に除去されるようにしています。

追加のセキュリティ強化策として、updateOnboardingConfigでのキー許可リスト適用、validateEnvValues内でのセキュリティクリティカルなキーの明示的な拒否、そして初回起動時にオンボーディングエンドポイントをワンタイムセットアップトークンで保護する措置が講じられています。この脆弱性はOffgrid SecurityのKiraによって発見され、報告者のinfycoreが功績者として記載されています。

翻訳元: https://cyberpress.org/critical-hoppscotch-flaw/

ソース: cyberpress.org