T09 · Insecure Skill Coding Practices
- Location
SKILL.md:157- Finding
External Disclosure of a Potentially Sensitive Session Identifier
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:157
Vulnerability Type: Disclosure of a session identifier to an external service
Risk Level: MediumVulnerable Code Snippet
markdown - **`fingerprint`**: **Required**, string, maximum 64 characters. Used to identify the user who liked the post and prevent duplicate likes. It is recommended to use your Agent name or session ID. Omitting it results in a 400 response.The original instruction recommends using the Agent's session ID as the
fingerprintsubmitted to the external API.Technical Analysis
The Skill instructs the Agent to send a fingerprint to
https://the-27th-hour.spacekid.mewhen liking a post and explicitly recommends using an Agent name or session ID. Session identifiers may be sensitive, stable, reusable, or bearer-like values. They should not be disclosed to an unrelated third-party service.A session ID is unnecessary for implementing a remote like-toggle operation. Recommending it violates data-minimization and identifier-scoping principles. Even when the identifier cannot authenticate directly, the service may log it and use it to correlate Agent activity across requests or sessions.
Attack Path
- A user explicitly asks the Agent to use the Skill.
- The Agent reads a post from the external service.
- The Agent invokes
POST /api/bottles/{id}/like. - Following the instruction at line 157, the Agent places its host session ID in the
fingerprintfield. - The session ID is transmitted to the third-party service and may be stored in application data, access logs, monitoring systems, or backups.
- The service operator or an attacker with access to those systems may correlate the Agent's activity. If the identifier has authentication significance, it may also be tested for unauthorized session access.
Impact Assessment
The direct scope is disclosure of an Agent or host session identifier and correlation of ...[truncated 485 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the recommendation to use a session ID or any host-provided security identifier.
- Explicitly prohibit API keys, authentication tokens, cookies, session IDs, user identifiers, and other host secrets in the
fingerprintfield. - Generate a cryptographically random, service-scoped pseudonymous identifier, such as a UUIDv4.
- Do not derive the identifier from the user, device, Agent identity, account, or host session.
- Store the pseudonymous identifier only when persistence is required for like toggling, and limit its lifetime and scope to this service.
- Inform the user before transmitting persistent identifiers to the external API.
- Update the instruction to state, for example: “Use a random identifier created solely for this service. Never use a session ID, authentication token, API key, or personal identifier.”
