[mcp-oauth] 遷移完成後移除 ALLOW_PLAINTEXT_NAMESPACE 逃生門(安全 sunset) #18

Open
opened 2026-07-07 04:53:01 +00:00 by Leo · 0 comments
Owner

背景

PR #15(feat/mcp-oauth-server)在 arcrun-mcp 實作 OAuth 2.1 server,修掉「self-hosted MULTI_TENANT=false 時 Bearer 明碼 namespace 直接放行」的漏洞(任何知道 URL 的人送 Bearer leo 就能讀寫全部 KBDB 資料)。

為了不硬砍本機既有整合(Claude Code MCP 目前經 acr mcp-setup 把明碼 namespace 寫進 .mcp.json),PR 保留了一個預設關閉、僅遷移期用的逃生門環境變數 ALLOW_PLAINTEXT_NAMESPACE:設成 "true" 會恢復舊明碼路徑(=重新打開漏洞)。

這個 issue 追蹤:遷移完成後移除逃生門

前置(遷移完成的定義)

  • acr mcp-setup 改為寫入真祕密 MCP_STATIC_TOKEN(CF Secret)而非明碼 namespace,本機 Claude Code MCP 走 static-token 路徑。
  • 遠端 claude.ai connector 走 OAuth(PR #15)已驗收上線。
  • 確認沒有任何部署仍依賴 ALLOW_PLAINTEXT_NAMESPACE="true"

移除動作

  • mcp/src/middleware/partner-auth.ts 的步驟 4(ALLOW_PLAINTEXT_NAMESPACE code path)。
  • mcp/src/types.tsEnv.ALLOW_PLAINTEXT_NAMESPACE 欄位。
  • mcp/wrangler.tomlmcp/OAUTH.md 對該變數的註解。
  • 對應測試(partner-auth.test.ts「逃生門開/關」)改為只斷言「明碼永遠被擋」。

相關檔案

  • mcp/src/middleware/partner-auth.ts(步驟 4,已標 SUNSET)
  • mcp/src/types.tsALLOW_PLAINTEXT_NAMESPACE
  • mcp/wrangler.toml / mcp/OAUTH.md §5

來源:PR #15 leo review 第 4 條要求。

## 背景 PR #15(feat/mcp-oauth-server)在 arcrun-mcp 實作 OAuth 2.1 server,修掉「self-hosted `MULTI_TENANT=false` 時 Bearer 明碼 namespace 直接放行」的漏洞(任何知道 URL 的人送 `Bearer leo` 就能讀寫全部 KBDB 資料)。 為了不硬砍本機既有整合(Claude Code MCP 目前經 `acr mcp-setup` 把明碼 namespace 寫進 `.mcp.json`),PR 保留了一個**預設關閉、僅遷移期用**的逃生門環境變數 `ALLOW_PLAINTEXT_NAMESPACE`:設成 `"true"` 會恢復舊明碼路徑(=重新打開漏洞)。 ## 這個 issue 追蹤:遷移完成後移除逃生門 ### 前置(遷移完成的定義) - [ ] `acr mcp-setup` 改為寫入**真祕密 `MCP_STATIC_TOKEN`**(CF Secret)而非明碼 namespace,本機 Claude Code MCP 走 static-token 路徑。 - [ ] 遠端 claude.ai connector 走 OAuth(PR #15)已驗收上線。 - [ ] 確認沒有任何部署仍依賴 `ALLOW_PLAINTEXT_NAMESPACE="true"`。 ### 移除動作 - [ ] 刪 `mcp/src/middleware/partner-auth.ts` 的步驟 4(`ALLOW_PLAINTEXT_NAMESPACE` code path)。 - [ ] 刪 `mcp/src/types.ts` 的 `Env.ALLOW_PLAINTEXT_NAMESPACE` 欄位。 - [ ] 清 `mcp/wrangler.toml` 與 `mcp/OAUTH.md` 對該變數的註解。 - [ ] 對應測試(partner-auth.test.ts「逃生門開/關」)改為只斷言「明碼永遠被擋」。 ### 相關檔案 - `mcp/src/middleware/partner-auth.ts`(步驟 4,已標 SUNSET) - `mcp/src/types.ts`(`ALLOW_PLAINTEXT_NAMESPACE`) - `mcp/wrangler.toml` / `mcp/OAUTH.md` §5 來源:PR #15 leo review 第 4 條要求。
Leo added the
s
backlog
label 2026-08-09 13:13:15 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Blocks
You do not have permission to read 1 dependency
Reference: Leo/Arcrun#18