T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Third-Party Dependencies and Runtime Package Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent Brave search wrapper, but it should be reviewed because it automatically falls back to a shared demo gateway key and relies on unpinned third-party package execution.
Install only if you are comfortable sending search queries through the OneKey Gateway. Prefer setting your own DEEPNLP_ONEKEY_ROUTER_ACCESS key, avoid relying on the shared demo key, pin and verify dependency versions before running npm, pip, or npx commands, and run the skill in a restricted environment if possible.
SKILL.md:10Unpinned Third-Party Dependencies and Runtime Package Execution
scripts/brave_web_search.py:8Public Hard-Coded Fallback Gateway Credential
The skill declares environment-variable use and references local scripts, but it does not define an explicit tool scope such as permissions or allowed-tools. That omission can lead to overbroad runtime behavior and makes it harder for operators to understand or constrain what the skill may access, especially where secrets and file reads are involved.
The documentation states that scripts fall back to a shared demo key, which encourages users to send queries through a common credential without clear warning about privacy, attribution, logging, quota abuse, or service-account ownership. Shared credentials reduce accountability and can expose user activity or data to third parties operating or monitoring that demo account.
Using npx onekey without a pinned version allows whatever package version is currently resolved from the registry to be executed. This creates a supply-chain risk: a compromised, malicious, or breaking upstream release could be pulled at runtime and run with the user's environment and API credentials available.
This is a second occurrence of the same unpinned npx onekey execution pattern and carries the same supply-chain exposure. Because the skill also depends on an API key in the environment, executing an unexpected upstream package version could result in credential theft or unauthorized actions.
The script reads a router access credential from an environment variable and even falls back to a hardcoded default token-like value. For a skill described as a simple Brave search wrapper, introducing a separate router credential expands trust boundaries and can enable unauthorized use of a broader gateway service if the credential is exposed, reused, or unexpectedly present in the runtime environment.
The code forwards the full user-supplied payload to an external router service without any disclosure, minimization, or confirmation step. If users provide sensitive queries or additional fields, that data is transmitted off-host to a third-party gateway, creating privacy and data-handling risk that is not apparent from the wrapper itself.
The code forwards the entire user-supplied payload, including the search query, to a remote routing service without any disclosure, minimization, or confirmation at the point of use. In a search skill, queries may contain sensitive or proprietary information, so silent transmission to an external service creates a privacy and data-handling risk even if the function is expected to perform networked search.
The script retrieves a router access token from an environment variable and even falls back to a hardcoded default token-like value. Embedding or implicitly using credentials in a narrowly scoped search skill increases the chance of unauthorized service use, secret leakage, or accidental cross-tenant access if the environment is misconfigured or the default key is active.
No suspicious patterns detected.