suspicious.exposed_secret_literal
- Location
- main.py:171
- Finding
- File appears to expose a hardcoded API secret or token.
AdvisoryAudited by Static analysis on May 10, 2026.
Detected: suspicious.exposed_secret_literal
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A real exposed provider key could be reused by anyone with the skill package, causing account abuse, cost exposure, or access to provider-side data.
The scan reports hardcoded API secret/token material in multiple code and documentation files, while the registry declares no primary credential or required env vars.
suspicious.exposed_secret_literal (critical) at main.py:171 ... Evidence: api_key=[REDACTED],
Remove any real keys from code/docs, rotate exposed provider keys, use environment variables or a secret store, and declare the required credentials in metadata.
Users may upload confidential enterprise documents believing content never leaves the machine, even though embedding workflows commonly send text to a provider API.
The skill advertises external embedding providers but also claims all data is local and not uploaded to the cloud, which can mislead users about document/query processing.
**嵌入模型**: DashScope text-embedding-v3 (1024维) 或 OpenAI ... **本地存储**: 所有数据保存在本地,不上传云端
Clearly state that document chunks and queries may be sent to DashScope/OpenAI for embeddings, document provider retention/privacy terms, and offer a local-embedding option if local-only privacy is claimed.
Private business documents and user queries may be transmitted to an external embedding provider without the user understanding that data flow.
Parsed document content is chunked and passed to an Embedder that the configuration/SKILL describe as DashScope or OpenAI-backed; the provider data boundary is not clearly disclosed.
text = self.parser.parse(file_path) ... embedding = self.embedder.embed_query(chunk.text)
Require explicit user/admin approval for external embedding calls, declare provider credentials, document what data is sent, and provide controls for redaction, provider selection, or local embeddings.
One agent or user could add, alter, or delete knowledge that other agents later treat as trusted enterprise context.
The design creates persistent shared KB state across skills/agents, with manager write/delete authority and only high-level access-control claims.
知识库数据存储在系统级固定目录中,所有skills自动共享 ... **kb-manager**: 完整权限,可创建、修改、删除
Enforce per-user/workspace ACLs, record provenance for uploaded documents, require approval for cross-agent reuse, and add audit/rollback controls for KB mutations.
A mistaken or over-broad delete request could remove indexed business knowledge.
The skill exposes a document-deletion workflow. It is purpose-aligned, but the visible code does not show confirmation, backup, or rollback.
elif command == "delete": handle_delete_command() ... result = manager.delete_document(document_id)
Ask for explicit confirmation before deletion, show the document name before deleting, and keep backups or an undo path.
Future installs may resolve to different dependency versions than the author tested.
The skill uses normal PyPI dependencies for its purpose, but they are not locked to exact versions and the registry source/homepage is unknown.
chromadb>=0.4.0,<0.5.0 ... openai>=1.0.0,<2.0.0
Use a lockfile or exact hashes for production installs and verify the package source before installing.