---
title: "OpenDeepWiki 2.0.6 まで、既定の JWT 署名鍵が公開されており管理者トークンを偽造できる（CVE-2026-119597）: 修正はコードのみで、リリース版は未公開"
url: https://n-t-p.io/worldsecurity/articles/opendeepwiki-hardcoded-jwt-key-admin-token-forgery-2-0-6-2026-119597
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年10月31日
updated: 2026年10月31日
severity: 緊急
cve: CVE-2026-119597
---

# OpenDeepWiki 2.0.6 まで、既定の JWT 署名鍵が公開されており管理者トークンを偽造できる（CVE-2026-119597）: 修正はコードのみで、リリース版は未公開

> **TL;DR:** OpenDeepWiki 2.0.6 まででは、appsettings.json に固定された JWT 署名鍵の既定値で、認証なしに管理者トークンを偽造し /api/admin を操作できる（CVE-2026-119597、CVSS v3.1 9.8・v4.0 9.3、CNA の値）。修正コミット 1bf0f4b は 10/22 にメインブランチへ入ったが、2.0.6（9/8）より新しいリリースは未確認。NVD の評価は未実施、EPSS 0.37%、KEV なし。

**要点**
- OpenDeepWiki 2.0.6 まで：JWT の署名鍵が appsettings.json に固定され、サンプル設定にも同じ値があるため、JWT_SECRET_KEY 未設定の環境では Admin claim 付きのトークンを偽造できる（CWE-321）
- 認証なしで /api/admin（ユーザー、ロール、リポジトリ、設定、API キーの管理）に届く。トークン偽造の再現は当サイトでは未実施
- 修正はコミット 1bf0f4b（10/22、メインブランチ）：既定の鍵を空にし、空・32 文字未満・公開済みの値なら起動を拒否する。2.0.6 より新しいリリースは確認できていない
- CVSS は CNA（VulnCheck）の値で v3.1 9.8・v4.0 9.3。NVD の評価は未実施（Deferred）、EPSS 0.37%、KEV なし、悪用の報告なし
- JWT_SECRET_KEY に長いランダム値を設定し、管理 API の公開を絞る。過去に既定の鍵で運用していた場合は管理操作の履歴を確認する（本記事の推定を含む）

AIDotNet の OpenDeepWiki 2.0.6 まででは、設定ファイル `appsettings.json` に JWT の署名鍵が既定値として固定されており、この鍵を使うと認証なしで管理者権限のトークンを偽造できる不具合（CVE-2026-119597、CWE-321）が 10/30 に NVD へ公開されました。CVSS は v3.1 が 9.8、v4.0 が 9.3 の Critical です（どちらも CNA の値）。**修正コミットは 10/22 にメインブランチへ入っていますが、2.0.6（9/8）より新しいリリースは確認できていません。**

## 何が起きるか

- NVD の説明によると、攻撃者は公開されている `Jwt:SecretKey` を使って HS256 のベアラートークンを作り、Admin ロールの claim を付けることで `/api/admin` 以下の機能（ユーザー、ロール、リポジトリ、設定、API キーの管理）にアクセスできます。
- 当サイトでは、v2.0.6 の `appsettings.json` に鍵の既定値が書かれていること、修正前の `Program.cs` が鍵が空の場合に環境変数 `JWT_SECRET_KEY`、それもなければ同じ既定値の文字列に切り替える実装だったことを確認しました。既定値はサンプルの compose ファイルにも書かれていました。
- そのため、`JWT_SECRET_KEY` を設定せずに使っている環境では、誰でも同じ鍵でトークンを作れる状態でした。鍵を自分で設定している環境が影響を受けるかは、本記事の確認範囲では分かりません。
- 実際の悪用の報告は確認できていません。CISA の KEV には載っていません（2026.10.30 版・1766 件で確認）。当サイトでは、トークンの偽造や管理画面へのアクセスを再現していません。

## 影響を受ける条件

| 項目 | 内容 |
|---|---|
| 対象 | OpenDeepWiki 2.0.6 まで（NVD・CNA の記載。下限は未確認） |
| 前提 | 既定の鍵のまま運用していること（`JWT_SECRET_KEY` が未設定、または既知の値）。管理 API に到達できること |
| 評価 | CVSS v3.1 は 9.8（Critical、AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H）、v4.0 は 9.3。値は CNA の VulnCheck が付けたもので、NVD 自身の評価ではない。NVD の状態は「Deferred」（10/30 時点）。GitHub の勧告（GHSA-fc52-73gp-r537）も Critical で同値、未レビュー |
| 弱点の分類 | CWE-321（ハードコードされた暗号鍵の使用） |
| EPSS | 0.37%（パーセンタイル 31.0%、10/31 時点、FIRST） |
| 修正 | コミット 1bf0f4b（10/22 17:47 UTC、メインブランチ）。リリース版は未確認 |

## 修正の内容と対応

修正コミット（1bf0f4b）の差分を読みました。

- `appsettings.json` の鍵の既定値を空にし、起動時に鍵を検査する処理を追加しています。空、32 文字未満、公開済みの既定値（サンプルに書かれていた 3 種類）のときは起動を拒否します。開発環境に限り、一時的なランダム鍵を使います。
- compose ファイルや README の例からも既定値を外し、`JWT_SECRET_KEY` を必須にしました。
- メインブランチは v2.0.6 より 23 コミット先にあり、修正コミットはその中に含まれます（compare で確認）。v2.0.6 より新しいタグやリリースは見つかりませんでした。

対応として考えられるのは次のとおりです。

1. 修正を含むリリースが出るまでは、`JWT_SECRET_KEY` に十分に長いランダムな値（修正コミットの例では `openssl rand -base64 48`）を必ず設定します。
2. 鍵を変えると既存のトークンは無効になります。過去に既定の鍵で運用していた場合は、管理 API のアクセスや管理者・API キーの変更履歴を確認します（本記事の推定）。
3. 管理 API を外部に公開しない、アクセス元を絞る、といった制限も有効と考えられます（推定で、効果は検証していません）。
4. メインブランチからビルドして使う場合は、修正コミットを含むことを確認します。

## 未確認の点

- 悪用の報告は確認できていません。KEV にも載っていません。
- NVD の評価は未実施（状態は Deferred）で、CVSS は CNA（VulnCheck）の値です。
- 当サイトでは、トークンの偽造と管理 API へのアクセスを再現していません。コードと設定の確認のみです。
- 2.0.6 より前の版が対象かは確認できていません。
- 修正を含むリリースの公開予定は確認できていません。修正コミットを含まない配布イメージの有無も未確認です。
- 日付は、NVD の公開（2026-10-30 14:16 UTC）、GitHub のコミットとリリースの記録に基づきます。


## 出典
- [NVD CVE-2026-119597](https://nvd.nist.gov/vuln/detail/CVE-2026-119597) — NIST NVD
- [GitHub Advisory GHSA-fc52-73gp-r537](https://github.com/advisories/GHSA-fc52-73gp-r537) — GitHub
- [修正コミット 1bf0f4b](https://github.com/AIDotNet/OpenDeepWiki/commit/1bf0f4b5ef8d972ca640e5df145b5813a9492544) — GitHub
- [OpenDeepWiki Issue #403](https://github.com/AIDotNet/OpenDeepWiki/issues/403) — GitHub
- [v2.0.6 の appsettings.json](https://github.com/AIDotNet/OpenDeepWiki/blob/v2.0.6/src/OpenDeepWiki/appsettings.json#L27) — GitHub
- [v2.0.6 の Program.cs](https://github.com/AIDotNet/OpenDeepWiki/blob/v2.0.6/src/OpenDeepWiki/Program.cs#L92) — GitHub
- [VulnCheck の勧告](https://www.vulncheck.com/advisories/opendeepwiki-through-2.0.6-hard-coded-jwt-signing-key-admin-token-forgery) — VulnCheck
- [FIRST EPSS CVE-2026-119597](https://api.first.org/data/v1/epss?cve=CVE-2026-119597) — FIRST

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/opendeepwiki-hardcoded-jwt-key-admin-token-forgery-2-0-6-2026-119597