T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:4
- Finding
- Unpinned Third-Party Package Receives Account Credentials## Vulnerability Details **File Location**: `SKILL.md`, line 4 and lines 76-78 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium The skill installs the `jquants-mcp` package without pinning a version, verifying a package hash or signature, or identifying a specific audited source revision. The resulting executable runs in an environment containing the user's J-Quants email address and password. **Relevant code at line 4:** ```yaml metadata: {"openclaw":{"emoji":"💹","requires":{"bins":["jquants-mcp"],"env":["JQUANTS_MAIL_ADDRESS","JQUANTS_PASSWORD"]},"install":[{"id":"uv","kind":"uv","package":"jquants-mcp","bins":["jquants-mcp"],"label":"Install jquants-mcp (uv)"}],"tags":["japan","stock","jpx","tse","price","ohlcv","finance","mcp","jquants"]}} ``` **Relevant code at lines 76-78:** ```markdown - Requires `JQUANTS_MAIL_ADDRESS` and `JQUANTS_PASSWORD` environment variables - Free account registration: https://jpx-jquants.com/ - Python package: `pip install jquants-mcp` or `uv tool install jquants-mcp` ``` ### Technical Analysis Both documented installation methods resolve the package without a fixed version or integrity constraint. Consequently, the code installed can change between installations even when the reviewed skill remains unchanged. No package source, lockfile, cryptographic hash, signature, or audited commit is included in the project. The installed command requires access to `JQUANTS_MAIL_ADDRESS` and `JQUANTS_PASSWORD`. A malicious or compromised package release could read these environment variables during execution and transmit them externally. It could also execute arbitrary code with the permissions of the user invoking the command. The inspected project does not establish that the current package is malicious; the vulnerability is the uncontrolled supply-chain trust boundary and direct exposure of credentials to unverifiable dependency code. ### Attack Path 1. An attacker c ...[truncated 1324 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `jquants-mcp` to a specific, reviewed version rather than resolving the latest available release. 2. Verify the package using a cryptographic hash or trusted signature and maintain those integrity values in a lockfile or installation manifest. 3. Document the authoritative publisher and source repository, and reference a reviewed release or immutable commit. 4. Include auditable source code in the skill package where practical, or perform a separate security review of the exact dependency version before deployment. 5. Prefer a scoped, revocable API token over an account password if J-Quants supports one. 6. Execute the dependency in a restricted environment with only the required credentials, filesystem access, and network permissions. 7. Avoid exposing unrelated secrets through the process environment, and rotate the J-Quants password immediately if dependency compromise is suspected.
