T08 · Insecure Dependencies
- Location
scripts/fulcra_annotations.py:55- Finding
Unpinned Fulcra CLI Package Execution
- Content
View full analysis
list[str]: command = os.environ.get("FULCRA_CLI_COMMAND", "uv tool run fulcra-api").strip() allowed = { "uv tool run fulcra-api": ["uv", "tool", "run", "fulcra-api"], "fulcra-api": ["fulcra-api"], } if command in allowed: return [*allowed[command], "auth", "print-access-token"] ``` The corresponding documentation instructs users to run the same unpinned dependency: ```bash uv tool run fulcra-api auth login ``` ### Technical Analysis The default authentication path executes `fulcra-api` through `uv tool run` without specifying a reviewed version, cryptographic hash, lockfile, or trusted immutable artifact. Package resolution can therefore select a release that differs from the version originally audited. This creates a supply-chain trust boundary: the selected package executes locally with the privileges of the agent process and participates directly in credential retrieval through `auth print-access-token`. If the package registry, maintainer account, release pipeline, or dependency graph is compromised, a malicious future release could execute before returning the expected token. The fixed argument array prevents shell metacharacter injection, but it does not address the mutable dependency itself. ### Attack Path 1. An attacker compromises the `fulcra-api` package distribution channel, maintainer account, or a package dependency. 2. The attacker publishes a malicious version under the legitimate package identity. 3. A user follows the documented onboarding flow or invokes an operation that requires a bearer token. 4. The skill executes `uv tool run fulcra-api auth print-access-token` without a version constraint. 5. The pa ...[truncated 966 chars]- Remediation
View remediation
