T08 · Insecure Dependencies
- Location
SKILL.md:18- Finding
Unpinned Global Installation of a Deployment Dependency
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is purpose-aligned for WeChat Mini Program deployment, but it gives agents sensitive deployment and admin-API workflows with under-scoped credential handling examples.
Review this skill before installing. It is not deceptive, but only use it in repos where agents may handle WeChat deployment credentials. Prefer pinned project-local miniprogram-ci installs, masked CI secrets, temporary key files created with restrictive permissions and trap cleanup, and avoid running AppSecret review-submission commands in local or untrusted agent environments.
SKILL.md:18Unpinned Global Installation of a Deployment Dependency
SKILL.md:159WeChat API Credentials Embedded in URL Query Strings
SKILL.md:205WeChat CI Private Key Written Unsafely to the Workspace
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
# This must be done via the WeChat MP admin panel or API
# Using WeChat API (requires access_token):
ACCESS_TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET" | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).access_token")
# Submit for review
curl -X POST "https://api.weixin.qq.com/wxa/submit_audit?access_token=$ACCESS_TOKEN" \
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
--desc "$(git log --oneline -1)" \
--enable-es6 true \
--enable-minify true
rm ./private.key
- name: Generate Preview QR
if: github.ref != 'refs/heads/main'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
--desc "$(git log --oneline -1)" \
--enable-es6 true \
--enable-minify true
rm ./private.key
- name: Generate Preview QR
if: github.ref != 'refs/heads/main'
The skill is framed around CI-key-based miniprogram-ci deployment, but it expands into broader WeChat admin API use for audit submission via AppSecret-derived access tokens. That broadens the credential scope and operational surface beyond what a deployment-focused skill strictly needs, increasing the chance that an agent or user handles higher-privilege secrets unsafely.
Introducing APPSECRET-based authentication in a skill otherwise centered on CI private keys encourages use of a more sensitive credential than necessary for the primary task. If copied into local shells, shared runners, logs, or chat transcripts, the AppSecret can enable broader administrative API access than the CI key alone.
The token retrieval example sends the AppSecret to an external endpoint without clearly stating that this must only occur in a secure backend or CI context. Absent that warning, users may run it interactively on developer machines or in agent-driven environments where command history, logs, and process listings can expose sensitive credentials.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# This must be done via the WeChat MP admin panel or API
# Using WeChat API (requires access_token):
ACCESS_TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET" | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).access_token")
# Submit for review
curl -X POST "https://api.weixin.qq.com/wxa/submit_audit?access_token=$ACCESS_TOKEN" \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# This must be done via the WeChat MP admin panel or API
# Using WeChat API (requires access_token):
ACCESS_TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET" | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).access_token")
# Submit for review
curl -X POST "https://api.weixin.qq.com/wxa/submit_audit?access_token=$ACCESS_TOKEN" \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
ACCESS_TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET" | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).access_token")
# Submit for review
curl -X POST "https://api.weixin.qq.com/wxa/submit_audit?access_token=$ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"item_list": [{
No suspicious patterns detected.