T09 · Insecure Skill Coding Practices
- Location
geoconvert.py:35- Finding
API Credential and Location Data Exposed in URL Query Parameters
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a straightforward geocoding skill that uses JisuAPI to convert addresses and coordinates, with privacy considerations because submitted locations and the API key are sent to that provider.
Install only if you are comfortable sending the addresses or coordinates you ask about to JisuAPI. Use a dedicated JisuAPI key with quotas or restrictions where possible, avoid sensitive home/work locations unless necessary, and rotate the key if you suspect request URLs were logged or exposed.
geoconvert.py:35API Credential and Location Data Exposed in URL Query Parameters
Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.
The skill declares that it requires an environment variable and, by design, calls an external API, but it does not declare an explicit tool scope such as permissions or allowed-tools. That weakens governance and review because an agent may invoke networked code with access to secrets without clear user- or platform-visible boundaries.
The invocation guidance uses broad triggers like 'similar map coordinate questions,' which can cause overbroad activation and unintended transmission of user location data to the external service. In this skill's context, vague routing increases privacy risk because even ambiguous geography-related queries may be escalated to a third party unnecessarily.
The skill routes user-supplied addresses and coordinates to a third-party API service, but the description does not clearly disclose this data sharing. Users may provide sensitive location data assuming local processing, creating privacy and consent risks when precise home, work, or travel locations are transmitted externally.
This constant defines an external endpoint used for coordinate-to-address lookups, meaning user location inputs are transmitted outside the local system. In a geo-conversion skill this is contextually expected, but it still increases risk because sensitive location data and API usage metadata are exposed to a third party.
import requests
COORD2ADDR_URL = "https://api.jisuapi.com/geoconvert/coord2addr"
ADDR2COORD_URL = "https://api.jisuapi.com/geoconvert/addr2coord"
This endpoint sends user-supplied address data to an external geocoding provider for conversion to coordinates. While necessary for the feature, the transmission of potentially sensitive address information to a third party is a genuine privacy and data-governance concern if not disclosed and controlled.
COORD2ADDR_URL = "https://api.jisuapi.com/geoconvert/coord2addr"
ADDR2COORD_URL = "https://api.jisuapi.com/geoconvert/addr2coord"
def coord2addr(appkey: str, req: dict):
The skill sends precise latitude/longitude supplied by the user to a third-party geocoding service, but the code contains no notice, consent flow, or minimization around that disclosure. Location data can be sensitive personal information, so silent transmission to an external provider creates a real privacy risk even if the code is otherwise functioning as intended.
The skill forwards user-provided address data to an external API without any user-facing disclosure in the implementation. Addresses may reveal home, work, or other sensitive locations, so undisclosed third-party transmission is a meaningful privacy issue in this skill's context.
No suspicious patterns detected.