T08 · Insecure Dependencies
- Location
references/api-reference.md:115- Finding
Unpinned Python SDK Creates a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:58,README.md:103,references/api-reference.md:115-119, andscripts/tts.py:24-35
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumThe documentation recommends installing the
smallestaiPython package without a version constraint, integrity hash, or lock file:SKILL.md:58:text ### Python (requires `pip install smallestai` or just `requests`)README.md:103:text Optional: `pip install smallestai` for the official SDK with async support and streaming.references/api-reference.md:115-119:markdown ## Python SDK ```bash pip install smallestaitext When that package is available, `scripts/tts.py:24-35` automatically imports and invokes it: ```python def synthesize_sdk(text, voice, speed, rate, lang, out_path, api_key): """Use the official Smallest AI Python SDK.""" from smallestai.waves import WavesClient client = WavesClient(api_key=api_key) client.synthesize( text=text, voice=voice, save_as=out_path, sample_rate=rate, speed=speed, ) return TrueTechnical Analysis
Installing a package without pinning an audited version allows the installed code to change independently of the reviewed Skill. Python packages may execute code during installation, module import, object initialization, or method invocation. The Skill automatically prefers the SDK whenever the import succeeds, so an altered package release would be placed directly in the TTS execution path.
No evidence establishes that the current package is malicious. The issue is the absence of version and integrity controls around executable third-party code. This exceeds the minimum dependency requirement because the Skill already includes direct HTTPS and
curlimplementations that do not require the SDK.Attack Path
- An attacker compromi ...[truncated 1369 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the SDK to a reviewed release, for example:
bash python3 -m pip install "smallestai==REVIEWED_VERSION" - Publish a lock file or requirements file containing cryptographic hashes and require hash verification:
bash python3 -m pip install --require-hashes -r requirements.txt - Record the reviewed package version, expected publisher, package index, and release provenance in the documentation.
- Prefer the fixed-endpoint
requestsorcurlimplementation unless SDK-specific functionality is required. - Consider making SDK use explicit rather than automatically importing and preferring any installed package.
- Install dependencies in an isolated virtual environment under an unprivileged account.
- Add dependency scanning and release verification to the project's maintenance process.
- Keep API credentials narrowly scoped and rotate
SMALLEST_API_KEYif dependency compromise is suspected.
- Pin the SDK to a reviewed release, for example:
