Bug: DocuEngine dynamic tools are process-global and can leak the first token's toolset across users
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- authentication, backend
Direzione di ricerca
Start by locating init_dynamic_tools() and tracing how its process-global guard registers tools for authenticated requests. Compare requests using tokens with different service access to determine where the tool list is initialized and reused. Done means a shared server exposes a tenant-safe, token-scoped toolset, or documents and enforces a deterministic shared-process limitation.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
When the first authenticated request initializes DocuEngine dynamic tools, the resulting tool list appears to become global for the whole process. In a shared deployment this means the first token to hit the server can effectively decide which dynamic tools are registered for everyone else.
Reproduction
- Start one shared server instance.
- Send a first authenticated request with token A that has a limited set of services.
- Later connect with token B that should expose a different or broader DocuEngine surface.
- Observe that the server keeps the already-registered dynamic toolset.
Expected
Dynamic tools should either be tenant-safe, token-scoped, or the server should make the shared-process limitation explicit and deterministic.
Actual
init_dynamic_tools() is guarded by a process-global flag, so the first successful registration wins.
Notes
This becomes visible in cloud or team environments where one MCP instance is reused by multiple users.
- Lingua principale
- Python
- Stelle
- 22
- Fork
- 4
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openapi/mcp-server
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openapi/mcp-server#33 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
openapi/mcp-server#29 ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 73/100
openapi/mcp-server#25 ·
-
Testing: add a host-agnostic smoke test checklist for OpenClaw, NanoClaw, and NemoClaw-style clientsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openapi/mcp-server#24 ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
openapi/mcp-server#21 ·
Tutte le issue di openapi/mcp-server
Issue simili
-
`burr` fails to start when the Python path has a space in itForse già presa @enekoreto l’ha presa oggi. Apertastatus/needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 5 giorni
-
gemini 出现了新的域名需要加入Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
debpalash/VoiceStudio#2903 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dagster-io/community-integrations#367 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
aws-samples/sample-per-model-bedrock#243 ·
I maintainer di solito rispondono entro 1 giorno