T09 · Insecure Skill Coding Practices
- Location
SKILL.md:11- Finding
Long-Lived Financial Session Token Can Be Transmitted Without Enforced TLS
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 11–12; related authentication instructions at lines 35–37 and 73–92
Vulnerability Type: Sensitive token exposure through insecure transport configuration
Risk Level: Mediummarkdown - `BILL_TRACKER_URL` - Base URL (e.g. https://your-server.com or http://localhost:1337) - `BILL_TRACKER_SESSION_TOKEN` - Session token for authentication (obtained once via POST /api/mcp/token)The related instructions state:
markdown Store the returned `sessionToken` in `BILL_TRACKER_SESSION_TOKEN`. Tokens are long-lived; no need to re-verify on every request. (Codes expire in 10 minutes.)Authentication examples transmit this token in an HTTP header:
bash curl -s -X POST -H "X-Parse-Session-Token: $BILL_TRACKER_SESSION_TOKEN" -H "Content-Type: application/json" \ -d '{"days": 3}' \ "${BILL_TRACKER_URL}/api/mcp/upcoming-transactions"Technical Analysis
BILL_TRACKER_URLis configurable, and the documentation explicitly permits anhttp://URL without requiring that plaintext HTTP be limited to a validated loopback destination. The documentedcurlcommands then transmitBILL_TRACKER_SESSION_TOKENas a bearer-equivalent authentication header to that configured endpoint.Because the token is described as long-lived, interception has greater security consequences than exposure of a short-lived credential. The commands also do not constrain permitted URL schemes or redirect protocols. If a remote plaintext endpoint is configured, or if redirects are accepted under an unsafe configuration, a network-positioned attacker may observe the token and sensitive financial responses.
This issue does not independently grant system privileges and requires an insecure or attacker-influenced endpoint configuration. Nevertheless, the skill lacks safeguards that prevent such a configuration.
Attack Path
- A user, deployment script, or atta ...[truncated 1272 chars]
- Remediation
View remediation
Remediation Suggestions
- Require HTTPS for every non-loopback Bill Tracker endpoint.
- Permit plaintext HTTP only after validating that the parsed hostname is an explicit loopback address such as
127.0.0.1or::1; do not rely only on string-prefix checks. - Validate
BILL_TRACKER_URLbefore use and reject unsupported schemes, embedded credentials, malformed hosts, and untrusted destinations. - For remote requests, constrain
curlwith options such as--proto '=https' --proto-redir '=https'and fail on insecure redirects. - Avoid disabling certificate verification and document that
curl -kor--insecuremust not be used. - Prefer short-lived, narrowly scoped session tokens and provide explicit token expiration, rotation, and revocation mechanisms.
- Store the token in a protected secret store rather than plaintext configuration, and ensure it is not written to logs, command traces, or user-visible output.
- Consider binding tokens to the intended audience and applying server-side rate limiting, anomaly detection, and immediate revocation after suspected disclosure.
