agentscope-ai / agentscope-ai/QwenPaw

[Bug]: shared workspace exposes channel secrets in agent.json

Open
#2,855 2 comments 0 reactions 0 assignees View on GitHub
question
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.