T09 · Insecure Skill Coding Practices
- Location
scripts/china_travel.py:23- Finding
Hard-Coded Reusable Proxy Authentication Token
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel-planning skill is purpose-aligned, but it ships a reusable proxy token and forwards travel requests to an external service whose returned booking content is presented directly.
Review this before installing if you are not comfortable sending travel searches, dates, cities, and preferences to the publisher's proxy. Treat booking links and prices as external recommendations, verify destinations before purchasing, and be aware that the published package contains a reusable proxy credential that should be rotated by the publisher.
scripts/china_travel.py:23Hard-Coded Reusable Proxy Authentication Token
scripts/china_travel.py:42Unvalidated Third-Party Content Is Presented as Trusted Skill Output
The skill declares only the bash tool and no explicit tool scope/permissions, yet its documented behavior depends on outbound network access to a proxy/API. This mismatch weakens least-privilege controls and can let a shell script make broader network requests than users or the platform expect, increasing the risk of data exfiltration or abuse if the script is modified or compromised.
The skill transmits user-supplied travel queries, dates, cities, and potentially preferences to a third-party proxy service without any user-facing disclosure or consent mechanism. In a travel context, these queries can reveal itinerary details, locations, timing, and personal preferences, creating privacy and data-handling risk if users assume the tool operates locally or do not expect third-party transmission.
The docstring for query_tripgenie states 'affiliate links auto-injected', which describes a monetization or transformation behavior that is not implemented anywhere in this client code. In reality, the function just posts the query to the proxy and returns the response payload, so the inline documentation overstates what the code itself does.