T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependency Enables Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a straightforward Gaode/AMap helper that uses an API key and sends map queries to AMap, with some security hygiene issues but no hidden or purpose-mismatched behavior.
Install only if you are comfortable sending searches, addresses, and route endpoints to Gaode/AMap. Prefer setting AMAP_API_KEY through a protected environment or secret manager, avoid using --key on the command line, and consider pinning requests before production use.
requirements.txt:1Unpinned Third-Party Dependency Enables Supply-Chain Risk
amap_tool.py:15AMap API Key May Be Disclosed Through Unsanitized HTTP Error Output
amap_tool.py:112API Credential Accepted Through an Exposed Command-Line Argument
The skill invokes a Python script that uses both an environment secret (AMAP_API_KEY) and network access, but the manifest does not declare an explicit tool scope such as permissions or allowed-tools. This weakens security boundaries because an agent runtime may grant broader capabilities than necessary or fail to present clear consent/audit controls for secret and network usage.
The skill sends user-supplied search terms and optional city/location data to the external AMap API without any built-in notice, consent flow, or minimization controls. Even though this is required for the feature to work, location and place queries can be sensitive personal data, so silent transmission creates a privacy risk for users who may not realize their inputs leave the local environment.
Route planning and geocoding transmit origin, destination, and possibly city data to a third-party mapping provider, which can reveal highly sensitive movement or address information. The code performs this automatically when inputs are not coordinates, with no explicit warning that personal location data will be disclosed externally.
The dependency manifest includes requests without a pinned version, which makes builds non-reproducible and can cause different environments to install different releases, including vulnerable or breaking ones. In a skill that interacts with an external map service over the network, using an unpinned HTTP client increases supply-chain and reliability risk, even though this file alone does not prove active exploitation.
requests
The manifest does not pin the version of requests, so it is impossible to verify whether the installed release is affected by known advisories. Because this skill likely performs outbound HTTP requests to Gaode Map services, an outdated or vulnerable requests version could expose credentials, TLS/session behavior, or other network-handling weaknesses depending on runtime resolution.
No suspicious patterns detected.