T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:180- Finding
Over-Privileged Credential Retrieval and Saved Payment Instrument Use
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This tee-time skill includes account login, stored credential use, saved payment selection, reward redemption, and reservation submission beyond ordinary search behavior.
Review this carefully before installing. It is acceptable as a GolfNow search helper only if you remove or tightly gate the booking flow. Do not allow it to access stored GolfNow credentials, saved cards, rewards, loyalty points, or Telegram screenshot sending unless each step is explicitly user-approved and scoped to the current user's account and transaction.
SKILL.md:180Over-Privileged Credential Retrieval and Saved Payment Instrument Use
SKILL.md:178Unredacted Checkout and Confirmation Screenshots Sent Through Telegram
The manifest promises search/comparison behavior, but the documented workflow relies on predefined or manually discovered GolfNow facility IDs and includes operational behavior beyond simple search. This mismatch can mislead orchestration systems and users, causing the skill to be invoked in contexts where it will either overreach or fail unpredictably.
A skill presented as a tee-time finder includes a complete browser booking workflow culminating in reservation submission. That is a significant scope escalation from search to transactional account activity, increasing the risk of unauthorized purchases or account actions under the guise of a harmless informational skill.
The skill directs retrieval and use of stored GolfNow credentials from a vault for login, even though its declared purpose is search/deals discovery. Accessing stored credentials without strong scope justification expands the blast radius from information retrieval to account compromise or misuse if the skill is invoked unexpectedly or abused.
The skill instructs use of saved payment methods, acceptance of terms, and final reservation submission, all of which are transactional actions outside the justified scope of a search/comparison skill. This can directly lead to unauthorized charges or bookings if the skill is triggered accidentally or manipulated by a prompt.
The skill clearly instructs use of shell-capable tooling (curl, python3, helper scripts, and credential retrieval via vault.sh) but does not declare any explicit tool scope or permissions boundary. This creates a capability-governance gap where an agent may invoke shell actions beyond what users expect from a tee-time search skill.
The activation language is broad enough to match general golf-related conversations, which increases the chance the skill will be invoked outside narrowly intended scenarios. In this case that is dangerous because the same skill also contains credentialed and transactional instructions, so over-triggering can expose users to unintended account or purchase actions.
The 'When to Use' section lacks clear scope boundaries and negative triggers, encouraging invocation for broad booking-related intents. Because the skill contains hidden escalation into login and checkout behavior, vague trigger conditions materially increase the risk of unintended sensitive actions.
The instructions tell the agent to use stored credentials without prominently warning the user that account secrets will be accessed. That undermines informed consent and can surprise users who believed they were only requesting public tee-time information.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
})
try:
r = subprocess.run([
'curl', '-s', '-X', 'POST',
'https://www.golfnow.com/api/tee-times/tee-time-results',
'-H', 'Content-Type: application/json',
The file specifies a 'Telegram Output Format' and later instructs sending screenshots via Telegram as if that channel is required. This can violate channel or locale flexibility expectations when the user has not opted into Telegram as the communication medium.
No suspicious patterns detected.