T08 · Insecure Dependencies
- Location
clawhub.json:9- Finding
Unpinned Third-Party SDK Handles the API Credential
- Content
View full analysis
Vulnerability Details
File Location:
clawhub.json:9-12; related installation guidance atREADME.md:26-30; credential use atscripts/fetch.py:12-18andscripts/fetch.py:36-44
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumComplete vulnerable code snippets:
clawhub.json:9-12json "requires": { "env": ["REVEYES_API_KEY"], "pip": ["reveyes>=0.1.2"] },README.md:26-30bash Then install the Python dependency: ```bash pip install reveyestext `scripts/fetch.py:12-18` ```python try: from reveyes import ReveyesClient from reveyes.exceptions import ( AuthenticationError, BadParamsError, InsufficientCreditsError, )scripts/fetch.py:36-44python api_key = os.environ.get("REVEYES_API_KEY") if not api_key: print(json.dumps({ "error": "REVEYES_API_KEY environment variable is not set.", "code": "AUTH_ERROR", })) sys.exit(1) client = ReveyesClient(api_key=api_key)Technical Analysis
The Skill installs
reveyesfrom PyPI without an exact version pin or package hash. The metadata accepts any release at or above version0.1.2, while the README allows the package manager to select the latest available release.Python packages can execute code during installation and whenever imported. At runtime, this dependency is also given the
REVEYES_API_KEYthroughReveyesClient(api_key=api_key)and controls the network implementation used to submit and retrieve review tasks. Because the SDK source is not included in the audited project, its effective behavior cannot be verified from this package.This does not establish that the current
reveyespackage is malicious. The vulnerability is the absence of dependency integrity and version controls around a component that executes locally and handles a credential.Attack Path
- An attac ...[truncated 1437 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the SDK to a specifically reviewed version, for example
reveyes==X.Y.Z, rather than using a lower-bound constraint. - Generate a lock file containing cryptographic hashes and install with hash verification, such as
pip install --require-hashes -r requirements.txt. - Review the pinned package source and confirm its API endpoint, TLS verification, credential handling, telemetry, and transitive dependencies.
- Obtain packages only from an explicitly configured trusted index and validate publisher and release provenance where supported.
- Use a dedicated, revocable Reveyes API key with the narrowest available permissions, credit limits, and rotation policy.
- Run the Skill in an isolated environment with restricted filesystem access and outbound networking limited to the documented Reveyes API endpoints.
- Keep the version pin and integrity metadata synchronized between
clawhub.json, installation documentation, and deployment automation.
- Pin the SDK to a specifically reviewed version, for example
