T09 · Insecure Skill Coding Practices
- Location
README.md:20- Finding
Plaintext WeChat application secret storage in agent-readable configuration
- Content
View full analysis
Vulnerability Details
File Location:
README.md:20-21; equivalent plaintext configuration guidance also appears inSKILL.md:56-57
Vulnerability Type: Plaintext sensitive credential storage
Risk Level: MediumVulnerable Code
markdown - AppID: wx1234567890abcdef - AppSecret: your-app-secret-hereTechnical Analysis
The setup documentation instructs users to place a WeChat AppSecret directly in a Markdown configuration file named
TOOLS.md. This stores a sensitive credential as plaintext in a file that may be accessible to the agent, source-control tooling, backups, logging systems, or other users and processes with access to the project workspace.Although
SKILL.mdalso documents environment-variable configuration, it presents plaintext file storage as a supported alternative without requiring access restrictions, secret redaction, repository exclusions, or a dedicated secret manager.The repository does not contain an implemented API client or executable code. Therefore, the confirmed issue is the insecure credential-handling guidance rather than active credential theft.
Attack Path
- A user follows the documented setup procedure and writes a valid WeChat AppSecret into
TOOLS.md. - The plaintext file is exposed through an accidental source-control commit, workspace backup, diagnostic archive, agent file access, log output, or another local process.
- An attacker extracts the AppID and AppSecret.
- The attacker attempts to exchange those credentials for WeChat API access tokens.
- If WeChat-side controls such as IP allowlisting do not prevent access, the attacker invokes APIs available to the affected application until the secret is revoked or rotated.
Impact Assessment
Successful exploitation could disclose credentials associated with the configured WeChat account. The resulting privileges are limited to the API permissions granted to that application and any platf ...[truncated 393 chars]
- A user follows the documented setup procedure and writes a valid WeChat AppSecret into
- Remediation
View remediation
Remediation Suggestions
- Remove instructions that place AppSecret values directly in
TOOLS.mdor any other agent-readable Markdown file. - Require credentials to be supplied through a protected secret manager or runtime environment-variable injection mechanism.
- Store only variable references in documentation and configuration, for example
AppSecret: ${WECHAT_APP_SECRET}. - Add
TOOLS.md, local environment files, and other secret-bearing files to.gitignorewhere applicable, while noting that ignore rules do not protect files already committed. - Restrict credential-file permissions to the minimum required account and process if file-backed secrets cannot be avoided.
- Ensure application and agent logs redact AppSecret values, access tokens, authorization headers, and related credentials.
- Enable applicable WeChat-side restrictions, including least-privilege API permissions and IP allowlisting.
- Document immediate secret revocation and rotation procedures for credentials that may already have been stored or committed in plaintext.
- Add automated secret scanning to repository and release workflows before distributing the skill.
- Remove instructions that place AppSecret values directly in
