T08 · Insecure Dependencies
- Location
SKILL.md:19- Finding
Unpinned Global Installation of a Third-Party CLI Package
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This shipping skill is mostly purpose-aligned, but it asks agents to install and use a mutable global CLI with sensitive shipping data and gives unsafe command templates for user-supplied fields.
Install only if you trust the @kuaidi100-user/cli package source and are comfortable with a global CLI handling shipping PII and login state. Prefer a pinned, reviewed CLI version, use safe argument-array execution rather than interpolated shell strings, require explicit confirmation before cancellations, and avoid unauthenticated access to local cached order data unless you understand what is stored locally.
SKILL.md:19Unpinned Global Installation of a Third-Party CLI Package
SKILL.md:131Shell Command Injection Risk from Unquoted User-Controlled CLI Arguments
The manifest description frames this as a user shipping assistant that must use SSO plus server-side address book for shipping and forbids local cache use. However, the documented capability set includes commands to view, set, and clear local sender/receiver/order data, including modifying local cached personal data. While partially caveated, this is broader than the manifest's stated operational model and introduces behavior the description does not clearly justify.
The manifest says unauthenticated users should only have access to helper functions, but the skill later allows logistics queries from local cached orders while unauthenticated. That widens access to potentially sensitive shipment metadata without login, which can expose tracking numbers, addresses, or order history to anyone with local environment access.
The skill documents order cancellation as a simple command flow without an explicit confirmation safeguard or warning about irreversible business impact. In an agent setting, destructive actions need stronger guardrails because a misunderstood request or hallucinated order number could cancel a legitimate shipment.
The workflow instructs sending sensitive personal data—names, phone numbers, and detailed addresses—to remote services for address parsing, pricing, and order creation without requiring any explicit user-facing notice or consent checkpoint. In a shipping skill, such transmission is expected, but silently forwarding third-party recipient data increases privacy and compliance risk, especially when the user may not realize which fields are being sent to which backend operations.
The document repeatedly states that in logged-in mode, order management should use only server-side data and avoid local-cache fallbacks. However, the cancellation workflow says that after a successful kd100 order cancel, the agent should mark status in local cache, which contradicts the earlier '仅服务端' / '不展示本地缓存' guidance for logged-in order management.
The skill explains that kd100 auth login --open will launch the system's external browser, and later says a browser tool may optionally auto-open the order link. While operationally clear, it does not explicitly warn users that external browser launch may expose session context to another application or change system state by opening URLs outside the agent environment.
The documentation repeatedly emphasizes that local cache must not be used in shipping-related flows, but then introduces local data management and local-order lookup pathways adjacent to those flows. Because the skill is a procedural operator guide, this mixed guidance can mislead an agent about whether local cached data is acceptable in practice. The contradiction is intent-level rather than a minor omission.
No suspicious patterns detected.