T09 · Insecure Skill Coding Practices
- Location
scripts/express.py:282- Finding
Incomplete Sanitization of Sensitive Tracking Data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a coherent package-tracking integration, but users should know it sends tracking details to BijieServ and has some dependency/privacy hygiene issues.
Install only if you are comfortable sending package tracking numbers, and optional phone or address hints when needed, to BijieServ. Prefer removing or moving the unused clawhub dependency, pinning reviewed dependency versions, and improving output redaction before using this in a privacy-sensitive environment.
scripts/express.py:282Incomplete Sanitization of Sensitive Tracking Data
package.json:7Unnecessary Runtime Dependency Retrieved Through a Non-Default Registry Mirror
The lockfile includes undici 7.24.7, and the advisory set describes multiple HTTP client weaknesses including response queue poisoning, information disclosure, and request/response desynchronization issues. This skill is a package-tracking integration that is likely to make outbound HTTP requests to courier or aggregator APIs, so a vulnerable HTTP stack is especially relevant and could expose user data, corrupt responses, or enable cross-request interference under adversarial network conditions.
The skill directs the agent to make external package-tracking queries but does not declare any tool scope, permissions, or allowed-tools boundary. That creates an authorization and governance gap: an agent platform may permit network use implicitly, making it easier for the skill to trigger outbound requests without explicit operator review or least-privilege controls.
The description enumerates phrases like where is my package and track package, which are common conversational requests and may cause unintended activation in contexts outside this skill's intended workflow. The manifest text does not include explicit constraints or non-trigger examples to disambiguate activation.
The example trigger 帮我查这个快递到哪了 is broad natural language that many general conversations about packages could contain, without clearly constraining when this skill should activate versus when a broader assistant response would be more appropriate. The file does not provide exclusion conditions or negative examples to narrow invocation scope.
The request headers hard-code 'Accept-Language' to Chinese-preferred values, and the payload also fixes 'lang' to 'zh'. This is a natural-language locale constraint with no opt-in, configurability, or justification that the skill is intended only for a Chinese-language context.
The payload explicitly sets 'lang' to 'zh', which forces a specific language for responses. The file does not provide a user-selectable locale option or explain that the skill is intentionally limited to Chinese users.
The skill transmits package tracking numbers and optional personal data such as phone number and address fields to a third-party service without any explicit consent flow, privacy notice, or minimization safeguards. Even if this is necessary for the feature, users may unknowingly disclose sensitive logistics and identity-linked data to an external provider, creating privacy and compliance risk.
The lockfile pins fflate to 0.8.2, and the supplied advisory indicates a malformed ZIP64 archive can trigger an infinite loop in unzipSync. Even though this file alone does not prove the vulnerable code path is exercised, shipping a known-vulnerable version is a real supply-chain risk because a dependent package may process attacker-controlled archives and suffer denial of service.
The dependency uses a caret range (^0.9.0), which allows installation of newer compatible releases rather than a single audited version. This creates supply-chain risk because future published versions of the package could introduce malicious code or breaking behavior without any change to this repository.
"author": "bijieserv",
"license": "MIT",
"dependencies": {
"clawhub": "^0.9.0"
}
}
This file begins with a Chinese-only heading and the table content is entirely in Chinese, with no indication that the skill is intentionally limited to Chinese-speaking users or a China-specific workflow. Under the language/locale policy, forcing a specific language without opt-in or justification can be a natural-language policy concern.
No suspicious patterns detected.