T09 · Insecure Skill Coding Practices
- Location
scripts/mcd_cli.py:125- Finding
Bearer Token Can Be Transmitted to an Arbitrary Network Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for using McDonald's MCP, but it gives broad live account/order authority and can send the bearer token to a custom endpoint without enough safeguards.
Review this before installing if you will use a real McDonald's MCP token. Prefer the default https://mcp.mcd.cn endpoint, avoid custom URLs, and do not run create-order, delivery-create-address, auto-bind-coupons, or mall-create-order unless you intentionally want live account changes.
scripts/mcd_cli.py:125Bearer Token Can Be Transmitted to an Arbitrary Network Endpoint
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
这个技能提供了一个本地 CLI(`scripts/mcd_cli.py`),支持:
Referenced artifact was not completely inspected
- `SKILL.md`:技能说明
The skill documents capabilities that involve network access, environment-variable token use, and writing output files, but it does not declare any explicit tool scope or permissions boundaries. That omission increases the chance that an agent or user invokes broader side-effecting behavior than expected, especially when the skill can contact a remote service and persist results locally.
The smoke-test is described as a convenience validation flow, but it explicitly performs a real tool invocation against the remote service without a strong warning about possible side effects. Because the fallback tool selection can hit account-affecting coupon functionality, users may trigger unintended live actions while expecting a harmless connectivity check.
The documented supported operations include actions such as creating real orders and delivery addresses, but the skill does not prominently warn that these are live, state-changing operations against a production remote service. In an agent setting, this can lead to unintended purchases, account changes, or privacy-impacting writes if a user or automation assumes the examples are read-only tests.
This code creates directories and writes a report file when --out is provided, but there is no confirmation prompt or visible user-facing warning near the write operation itself. Although the CLI flag implies output, the code does not explicitly disclose that it may create parent directories as a side effect.