T09 · Insecure Skill Coding Practices
- Location
scripts/hs_lookup.py:103- Finding
Automatic Disclosure of Product Search Terms to a Placeholder External Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a coherent trade-compliance helper, but its HS lookup script can automatically send product search terms to a placeholder external API without clear opt-in.
Review this skill before installing if you handle confidential product, supplier, customer, or shipment data. Keep HS lookup offline unless you intentionally configure and approve an external service, and do not rely on its compliance outputs as final legal, customs, or export-control determinations.
scripts/hs_lookup.py:103Automatic Disclosure of Product Search Terms to a Placeholder External Service
scripts/hs_lookup.py:18Unpinned Third-Party Dependency Installation Guidance
The manifest promises broad compliance, document review, and regulatory-checking capabilities that are not actually implemented, while also implying optional networking not disclosed in the description. In a trade-compliance context, this can cause users to rely on incomplete or nonexistent checks for export controls, certifications, and shipping documents, leading to regulatory violations, shipment holds, or unsafe business decisions.
The skill references file reads and network-assisted scripts (references/*, scripts/hs_lookup.py) but does not declare any explicit tool scope or allowed-tools boundary. This creates an authorization ambiguity where the runtime may permit broader access than reviewers or users expect, increasing the risk of unintended file access or external data exfiltration if the skill is later expanded or interpreted permissively.
The trigger terms are extremely broad (验货、检测、合规、单证、外贸、出口、报关) and may cause the skill to activate on ordinary trade conversations outside the user’s intent. In this domain, accidental invocation can expose sensitive commercial documents or lead the model to provide quasi-legal compliance guidance where a general response or explicit consent would have been more appropriate.
This markdown file contains user-facing natural language exclusively in Chinese, including headings, instructions, and report guidance. Under the policy, forcing a specific language without user opt-in can be a language/locale policy violation when no alternative or justification is provided.
This Python file contains natural-language descriptions and usage text entirely in Chinese, and the interactive/reporting strings throughout the script are also Chinese-only. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not stated here.
The script implements outbound network access to an external HS lookup API even though the skill is described primarily as a local compliance/document assistant. That means user-supplied product keywords may be transmitted off-platform without explicit disclosure, creating a data-governance and privacy boundary violation if users enter sensitive product, supplier, or shipment information.
The code sends the raw user query directly to an external endpoint via a query string, which expands the skill's behavior beyond the documented local lookup helper. In this trade/compliance context, search terms can contain commercially sensitive details such as product types, battery-related goods, or regulated export items, so undisclosed exfiltration to a third party is risky.
The hardcoded external URL demonstrates an egress path where user input is embedded into a remote request. Even though the domain is a placeholder example, the implemented pattern is still dangerous because replacing it with a real endpoint would immediately enable undisclosed external transmission of potentially sensitive trade lookup terms.
"""联网查询(调用腾邦HS编码查询API示例)"""
try:
# 注意:实际使用时请替换为可用的HS编码查询API
url = f"https://api.example.com/hs/search?q={keyword}"
resp = requests.get(url, timeout=5)
if resp.status_code == 200:
return resp.json()
The workflow specifies generating an “英文合规说明函” as the output format, but does not indicate that the user can choose the language. This is a locale/language policy concern because it imposes a specific language by default rather than offering a user-facing option.
This markdown file presents all instructions and checklist content exclusively in Chinese, and there is no natural-language indication that users may choose another language or that the skill is intentionally limited to a Chinese-speaking context. Under the policy, forcing a specific language without user opt-in is a locale/language policy concern.
The entire markdown file is written in Chinese and does not indicate that the user may choose another language or that the content is intentionally restricted to a Chinese-language audience. Under the stated policy, forcing a specific language without user opt-in can be a natural-language policy violation.
This markdown file is natural-language content and appears to require Chinese comprehension throughout, from the title to all compliance tables and disclaimers. Under the language/locale policy, forcing a specific language without user opt-in or a clearly documented regional justification is a policy concern.
No suspicious patterns detected.