T09 · Insecure Skill Coding Practices
- Location
script.sh:321- Finding
Baidu API Token Transmitted over Plaintext HTTP and Exposed in a URL
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is mostly an IndexNow helper, but it includes unsafe copy-paste examples that can expose website or API credentials.
Review this skill before installing or using it. Its core IndexNow examples are purpose-aligned, but do not paste the WordPress basic-auth or Baidu HTTP examples with real credentials; use safer credential storage, prefer HTTPS, and verify any third-party indexing API guidance separately.
script.sh:321Baidu API Token Transmitted over Plaintext HTTP and Exposed in a URL
The skill describes capabilities that require outbound network access and likely shell execution via curl or Node.js, but it does not declare any explicit tool scope such as permissions or allowed-tools. That mismatch creates an authorization and transparency gap: an agent may invoke broader capabilities than a user or platform reviewer expects, increasing the risk of unintended external requests, data exfiltration, or misuse against arbitrary URLs/domains.
The manifest describes an operational skill that can ping search engines, submit sitemaps, and manage keys. In reality, every command function emits static help text or sample shell snippets via here-docs, and the dispatcher only routes to those documentation outputs; no curl, key generation, verification, or submission logic is actually executed by the skill itself.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s "https://yandex.com/indexnow?url=${URL}&key=${KEY}"
# IndexNow API (covers all participating engines)
curl -s "https://api.indexnow.org/indexnow?url=${URL}&key=${KEY}"
```
## Response Codes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## Submit up to 10,000 URLs at once
```bash
curl -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json" \
-d '{
"host": "yoursite.com",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
}))
")
RESP=$(curl -s -w "%{http_code}" -X POST \
"https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json" \
-d "$JSON")
The WordPress example encourages use of inline basic-auth credentials in a shell command, which can expose secrets through shell history, process listings, logs, screenshots, and copied documentation. Even though it is an example, users may paste it directly into real environments and leak privileged CMS credentials.
This example sends WordPress credentials to a remote endpoint using inline basic auth, creating an exposure path for secrets via shell/process visibility and accidental reuse. The transmission itself may be legitimate, but the insecure credential-handling pattern makes it dangerous.
### WordPress
```bash
# Via WP REST API
curl -X POST "https://yoursite.com/wp-json/wp/v2/pages" \
-u "user:password" \
-d "title=${KEY}&content=${KEY}&slug=${KEY}&status=publish"
```
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## Google Alternative
```bash
# Google Indexing API (requires OAuth2 setup)
curl -X POST "https://indexing.googleapis.com/v3/urlNotifications:publish" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"url": "https://yoursite.com/page", "type": "URL_UPDATED"}'
The Baidu example uses plain HTTP rather than HTTPS, which exposes submitted URLs and tokens to interception or tampering by network attackers. Even as documentation, this can train users into insecure transport for authenticated requests.
## Baidu Alternative
```bash
# Baidu push API
curl -X POST "http://data.zz.baidu.com/urls?site=yoursite.com&token=YOUR_TOKEN" \
-H "Content-Type: text/plain" \
-d "https://yoursite.com/page1
https://yoursite.com/page2"
The manifest scope is specifically framed around IndexNow protocol support for Bing, Yandex, and the IndexNow API. The engines command expands beyond that scope by including concrete API usage examples and submission strategy for Google Search Console/Indexing API and Baidu push, which are separate systems not declared in the skill purpose.
No suspicious patterns detected.