T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:81
- Finding
- Unpinned Third-Party SDK Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:81-83`; also present in `README.md:46-48` and `examples/README.md:7-11` **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```markdown The Lybic Python SDK must be installed: ```bash pip install lybic ``` ``` Equivalent installation instructions also appear in the other documentation files: ```bash pip install lybic ``` ### Technical Analysis The project instructs users to install `lybic` from the default Python Package Index without specifying an exact reviewed version or verifying package integrity through hashes. As a result, the code installed and subsequently imported may differ from the version originally reviewed. A compromised maintainer account, malicious upstream release, package-index compromise, or dependency takeover could cause arbitrary third-party code to run in the user's Python environment. This risk is especially relevant because the examples import and initialize the SDK while the following credentials are available in environment variables: - `LYBIC_ORG_ID` - `LYBIC_API_KEY` Base64 use elsewhere in the project is not evidence of secret obfuscation or exfiltration. It is used as the documented transport format for process input and output. The supply-chain concern instead arises from trusting a mutable, unpinned package. ### Attack Path 1. An attacker compromises the upstream `lybic` package or publishes a malicious release through a compromised maintainer account. 2. A user follows the documented command: ```bash pip install lybic ``` 3. The package manager resolves the latest available release rather than a previously reviewed version. 4. The malicious package executes code during an applicable installation/build step or when imported by the examples. 5. The package reads accessible environment variables, including the Lybic organization ID and API key. 6. The attacker can exfiltrate those credentials or inv ...[truncated 713 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the SDK to an exact reviewed version: ```bash python3 -m pip install "lybic==<reviewed-version>" ``` 2. Publish a requirements or lock file containing cryptographic hashes and install with hash enforcement: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Record the expected package index explicitly and prevent fallback to untrusted indexes where appropriate. 4. Review the pinned package and its transitive dependencies before updating the lock file. 5. Run the SDK in a dedicated virtual environment or container with only the credentials and filesystem access required for the requested task. 6. Scope Lybic API keys to the minimum necessary permissions and rotate them if dependency compromise is suspected. 7. Keep the installation command consistent across `SKILL.md`, `README.md`, and `examples/README.md`. ]]>
