T09 · Insecure Skill Coding Practices
- Location
scripts/hybrids3.sh:39- Finding
Bucket and Master Credentials Can Be Transmitted over Plaintext HTTP or Exposed in URL Query Parameters
- Content
View full analysis
`, or (for clients that can't set headers) as `?auth=` on the URL. ``` ```bash claude mcp add --transport http hybrids3 "$HYBRIDS3_URL/mcp/" \ --header "Authorization: Bearer $HYBRIDS3_MASTER_KEY" ``` From `references/setup.md`: ```nginx location /storage { proxy_pass http://hybrids3:8080; # NO trailing slash — forwards full path proxy_set_header Host $http_host; # $http_host, NOT $host — keeps the port for SigV4 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` ```markdown Then clients use the prefixed URL: `HYBRIDS3_URL=http://yourdomain/storage`, boto3 `endpoint_url="http://yourdomain/storage"`, MCP `http://yourdomain/storage/mcp/`. ``` ### Technical Analysis The helper constructs an `Authorization: Bearer` header from `HYBRIDS3_KEY` and passes it to `curl` without enforcing HTTPS. Although the default endpoint is loopback-only, `HYBRIDS3_URL` is user ...[truncated 2669 chars]- Remediation
View remediation
` authentication guidance. Require Authorization headers for MCP endpoint authentication. 5. Replace all externally reachable examples with `https://` URLs and document TLS termination at the reverse proxy. 6. Clearly distinguish S3 SigV4 behavior from Bearer authentication: the S3 secret is not directly transmitted, while an HTTP/MCP Bearer key is transmitted and must be protected by TLS. 7. Prefer per-bucket keys over the master key and use the master key only for operations that genuinely require cross-bucket authority. 8. Ensure reverse proxies redact Authorization headers and query strings from logs. Rotate any key previously used in a query parameter or over an untrusted plaintext connection. ]]>
