T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:60
- Finding
- Operator-Supplied llama-server Executable Is Not Cryptographically Verified<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:60-62` **Vulnerability Type**: Unverified third-party executable dependency **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown Place ggml-org **CPU** `llama-server.exe` from release tag **b10988** (`llama-*-bin-win-cpu-x64.zip`) into `engine/`. Do not use a nested Ollama copy. Run as an **unprivileged** user: `LYGO_LLM_CONSOLE.bat`. Default bind `127.0.0.1:9641`. LAN bind needs `--lan --i-consent`. ``` The same unverified workflow is also documented in `examples/quickstart.md:10-13`: ```markdown Place `llama-server.exe` from ggml-org tag b10988 into `engine/`. Run `LYGO_LLM_CONSOLE.bat` as a normal (non-admin) user. ``` ### Technical Analysis The instructions pin the expected llama.cpp release tag and archive naming convention, but they do not provide an expected SHA-256 digest, publisher signature, or other cryptographic verification procedure for the downloaded archive or executable. The bundled console subsequently launches the operator-supplied `llama-server.exe`. Pinning only a release tag does not establish the integrity or authenticity of the downloaded binary. An attacker could distribute a substituted archive through a counterfeit download page, compromised mirror, poisoned search result, or compromised upstream release channel. Although the documentation requires running as an unprivileged user, this only limits the immediate privilege level. A malicious executable would still run with all permissions available to that user. ### Attack Path 1. The operator follows the documentation and searches for or otherwise obtains the CPU archive associated with tag `b10988`. 2. An attacker causes the operator to receive a modified archive, such as through a counterfeit release page, malicious mirror, compromised download channel, or substituted local file. 3. The operator places the altered `llama-server.exe` in the kit's `engine/` directory. 4. No documented checksum or sig ...[truncated 803 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Publish the exact canonical HTTPS URL for the required release archive. 2. Provide expected SHA-256 values for both: - The downloaded `llama-*-bin-win-cpu-x64.zip` archive. - The extracted `llama-server.exe`. 3. Add a verification script that computes the executable digest and fails closed if it differs from the embedded trusted value. 4. Verify the upstream publisher's digital signature where one is available. 5. Modify the BAT launcher to refuse to execute an absent, unexpected, or unverified engine binary. 6. Document that operators must not obtain the executable through search results, unofficial mirrors, or third-party repackaging sites. 7. Keep the non-administrator execution requirement as defense in depth. ]]>
