agentscope-ai / agentscope-ai/QwenPaw
[Bug]: shared workspace exposes channel secrets in agent.json
- Dominant language
- Python
- Stars
- 34.9k
- Forks
- 3.1k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 225
Description
## CoPaw Version
version 1.0.0
## Description
**workspaces/default/agent.json** stores channel configuration parameters, including sensitive fields such as api_key. In the current design, workspace is a shared public area that is readable and writable by all channel bots. This creates a security issue: one bot/channel may be able to read or modify another bot/channel’s sensitive configuration.
This breaks tenant/channel isolation and may lead to secret exposure, unauthorized API usage, configuration tampering, and possible cross-channel privilege abuse.
Expected behavior: sensitive channel configuration, especially secrets like API keys, should not be stored in a shared readable/writable workspace accessible by other bots/channels. Secrets should be isolated per channel/tenant and protected by stricter access controls or secret management mechanisms.
**Related PR(s):** #(optional)
**Security considerations:** : Sensitive config exposure, cross-channel access control failure, tenant isolation weakness, possible secret leakage and tampering
## Component(s) Affected
- [ x ] Core / Backend (app, agents, config, providers, utils, local_models)
- [ ] Console (frontend web UI)
- [ x ] Channels (DingTalk, Feishu, QQ, Discord, iMessage, etc.)
- [ ] Skills
- [ ] CLI
- [ ] Documentation (website)
- [ ] Tests
- [ ] CI/CD
- [ ] Scripts / Deploy
## Environment
- **CoPaw version:** [1.0.0]
- **OS:** []
- **Install method:** [Docker]
- **Python version (if applicable):** []
## Steps to Reproduce
1. Configure a channel/bot so that its settings are written into **workspaces/default/agent.json**.
## Actual vs Expected
- **Actual:**: Channel configuration, including sensitive secrets like api_key, is stored in **workspaces/default/agent.json** under a shared workspace accessible by all bots/channels. Other bots/channels may be able to read or modify these secrets and settings.
- **Expected:**: Sensitive channel configuration should be isolated per channel/tenant and not stored in a shared public workspace. Secrets should be protected with proper access control, masking, and preferably external secret storage or environment-based injection.
## Logs / Screenshots
## Additional Notes
[Optional: workarounds, similar issues, etc.]
Contributor guide
Assessment
This issue has not been assessed yet.