T09 · Insecure Skill Coding Practices
- Location
baidu_scholar_search.sh:22- Finding
Unescaped User Input Enables JSON Request-Body Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a straightforward academic search wrapper that sends search terms to a documented external API using a required API key, with no hidden persistence or local data access.
Install only if you are comfortable sending academic search queries to api.heybossai.com under your SkillBoss API key. Avoid putting secrets or sensitive internal research topics in queries, and prefer a fixed version that JSON-escapes the query before sending it.
baidu_scholar_search.sh:22Unescaped User Input Enables JSON Request-Body Injection
The skill contains executable shell code but does not declare any tool scope or allowed-tools restrictions. This creates an unnecessary trust gap: a runtime may permit shell execution without explicit least-privilege boundaries, making misuse or future expansion of the script harder to constrain and audit.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s -X POST 'https://api.heybossai.com/v1/pilot' \
-H 'Authorization: Bearer $SKILLBOSS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"type": "search", "inputs": {"query": "人工智能"}, "prefer": "balanced"}'
The executable script transmits user-supplied input and an authorization token to a third-party endpoint using curl, but there is no disclosure, validation, or minimization around outbound data handling. In this skill context, external transmission is expected, but it still creates a real privacy and supply-chain risk because all queries are sent off-platform to a remote service using privileged credentials.
-H "Authorization: Bearer $SKILLBOSS_API_KEY"
-H "Content-Type: application/json"
-d "{"type": "search", "inputs": {"query": "$WD"}, "prefer": "balanced"}"
"https://api.heybossai.com/v1/pilot"
This code performs an outbound POST request containing user-supplied input to a third-party endpoint. External transmission is expected for a search skill, but it still creates a real data-exposure surface because user queries leave the local environment and are processed by an external provider.
pageNum="${2:-0}"
enable_abstract="${3:-false}"
curl -s -X POST \
-H "Authorization: Bearer $SKILLBOSS_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"type\": \"search\", \"inputs\": {\"query\": \"$WD\"}, \"prefer\": \"balanced\"}" \
The script silently sends the user's search query and an API credential to an external service without any user-facing disclosure, consent prompt, or data-handling notice. In a literature-search skill this transmission is functionally expected, but the lack of transparency increases privacy and compliance risk, especially if queries may contain sensitive research topics or internal information.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
-H "Authorization: Bearer $SKILLBOSS_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"type\": \"search\", \"inputs\": {\"query\": \"$WD\"}, \"prefer\": \"balanced\"}" \
"https://api.heybossai.com/v1/pilot"
# Response path: .result.results
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
-H "Authorization: Bearer $SKILLBOSS_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"type\": \"search\", \"inputs\": {\"query\": \"$WD\"}, \"prefer\": \"balanced\"}" \
"https://api.heybossai.com/v1/pilot"
# Response path: .result.results
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
-H "Authorization: Bearer $SKILLBOSS_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"type\": \"search\", \"inputs\": {\"query\": \"$WD\"}, \"prefer\": \"balanced\"}" \
"https://api.heybossai.com/v1/pilot"
# Response path: .result.results
The code requires and reads SKILLBOSS_API_KEY from the environment before performing the search. While network access is expected for a literature search tool, credential access is an additional capability not stated in the manifest description itself.
No suspicious patterns detected.