T09 · Insecure Skill Coding Practices
- Location
SKILL.md:63- Finding
Unprotected Shared Knowledge Storage May Disclose Sensitive Information
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 63–67 and 282–289
Vulnerability Type: Insecure storage and sharing of potentially sensitive query results
Risk Level: MediumVulnerable Code
text ### Q3: 缓存数据存储在哪里? 默认存储在项目根目录的 `.knowledge-toolkit/cache/` 下,可配置为其他路径。缓存数据不出本机. ### Q4: 团队共享知识如何同步? 将 `.knowledge-toolkit/shared/` 目录纳入版本控制或同步盘,团队成员拉取后即可共享知识.The relevant configuration also enables shared storage:
json "team": { "shared_enabled": true, "storage": ".knowledge-toolkit/shared/" }Technical Analysis
The Skill recommends placing
.knowledge-toolkit/shared/under version control or a synchronized drive. It also enables shared storage in the example configuration. The documented workflow supports querying authenticated internal Wikis, source repositories, API specifications, and other enterprise data sources.Consequently, stored query results may contain proprietary documentation, internal architecture details, source-derived information, personal information, or sensitive query history. The instructions do not require data classification, content redaction, encryption, destination validation, restrictive filesystem permissions, retention limits, or repository access verification before synchronization.
Environment variables are appropriately recommended for API tokens, and no hardcoded production credentials were found. However, protecting credentials does not protect sensitive content returned through those credentials.
Attack Path
- An authorized user configures an authenticated internal data source.
- The Agent queries sensitive internal documentation or repository content.
- The result is written to
.knowledge-toolkit/shared/. - Following the documented recommendation, the directory is added to version control or a synchronization service.
- The selected repository, branch, synchronization group, or inherited sharing configuration gr ...[truncated 699 chars]
- Remediation
View remediation
Remediation Suggestions
- Disable shared storage by default and require explicit user authorization for each sharing destination.
- Require users to classify content before saving or synchronizing it.
- Apply secret detection and sensitive-data redaction before writing query results.
- Encrypt shared data at rest and in transit.
- Create shared directories with restrictive filesystem permissions.
- Validate repository visibility, branch protections, synchronization membership, and access-control lists before sharing.
- Define retention periods and provide secure deletion functionality.
- Add cache and shared directories to
.gitignoreby default. - Permit version control only when the user explicitly selects an approved private repository.
- Maintain an audit log identifying the source, destination, initiator, and classification of every shared item.
