CodeVetter · Repo Unpack · Risk map
vercel/turborepo
The following are security-sensitive boundaries and source-observed coupling points, not confirmed vulnerabilities. Native command execution, archive restoration, user-level credentials, remote cache authorization, and internal operator deployment protection deserve focused review. The bounded inspection does not establish whole-repository coverage or the absence of other risks.
- Task command configuration can replace native commands or opt out entirely; executable, arguments, cwd, and environment are applied before spawning, making repository task definitions an execution trust boundary.
- Archive restore writes into the anchor and supports directories, regular files, and symlinks; Unix regular-file permissions are masked to 0777 and unsupported entry types fail.
- Output collection follows symlinked output roots, filters peer managed logs, and rejects paths outside the repository; restoration currently fetches the artifact without using output globs to restrict extraction.
- Login persists access and refresh tokens outside the repository through create_with_contents_secret; credential routing distinguishes vca_ tokens from legacy tokens and clears alternate storage.
- Artifact signing uses TURBO_REMOTE_CACHE_SIGNATURE_KEY and binds hash, team ID, and body length; short-key enforcement is conditional, with warning-only compatibility unless longerSignatureKey is enabled.
- Remote-cache token recovery is serialized and retries with changed credentials; failed recovery disables remote caching for the run, while task cache-fetch errors are logged before execution continues.
- The GraphQL service binds 127.0.0.1:8000 and rejects Host values outside localhost/127.0.0.1, explicitly guarding its local HTTP exposure.
- Factory documents Vercel Deployment Protection as its outer operator authentication layer and same-origin/action-header checks for mutations; deployment protection configuration is therefore a material access-control dependency.