Bug: DocuEngine dynamic tools are process-global and can leak the first token's toolset across users
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 42/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- python
- Lĩnh vực
- authentication, backend
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 22
- Fork
- 4
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của openapi/mcp-server
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
openapi/mcp-server#33 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
openapi/mcp-server#29 ·
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 73/100
openapi/mcp-server#25 ·
-
Testing: add a host-agnostic smoke test checklist for OpenClaw, NanoClaw, and NemoClaw-style clientsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
openapi/mcp-server#24 ·
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 72/100
openapi/mcp-server#21 ·
Tất cả issue của openapi/mcp-server
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
jbacalso24/mimry#291 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
from-review-extraction python severity:nit
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
LearningCircuit/local-deep-research#7462 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
mermaid_extract.py silently discards single-line state-diagram notes; sequence notes are keptĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
cathrynlavery/diagram-design#441 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Cleanup] Include the public header in work_split.cppCó thể đã có người làm @blozano-tt đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
tenstorrent/tt-metal#60850 ·
Maintainer thường phản hồi trong vòng 1 ngày