T05 · Unauthorized Access and Privilege Escalation
- Location
AGENTS.md:178- Finding
Deployment Guidance Bypasses Vercel Commit-Author Access Controls
- Content
View full analysis
Vulnerability Details
File Location:
AGENTS.md, lines 178-190
Vulnerability Type: Access-control bypass through direct deployment API usage
Risk Level: MediumVulnerable Code
bash # Trigger via API curl -X POST "https://api.vercel.com/v13/deployments" \ -H "Authorization: Bearer $VERCEL_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"your-project","gitSource":{"type":"github","ref":"main","repoId":"REPO_ID"}}'The accompanying instructions state:
text Vercel's git integration silently blocks deploys from authors not on the team. Using the API directly bypasses this and gives you explicit error messages when something fails.Technical Analysis
The Skill recommends using a bearer token and the Vercel deployment API when Vercel rejects a Git-triggered deployment because the commit author is not an authorized team member. This deliberately circumvents the commit-author authorization control instead of correcting the repository identity or team-membership configuration.
Although the API still requires a valid
VERCEL_TOKEN, possession of that token becomes a substitute for the failed author check. This expands the agent's effective deployment authority beyond the identity represented by the commit. It also targets themainbranch directly, increasing the consequences of an accidental, compromised, or improperly authorized invocation.The behavior is related to the Skill's CI/CD functionality, but bypassing an existing platform authorization gate is not necessary. The legitimate requirement can be met by correcting Git identity, granting appropriate team membership, or using a controlled preview-deployment workflow.
Attack Path
- The agent receives access to a Vercel token through its execution environment.
- A commit is rejected by Vercel's Git integration because its author is not an authorized team member.
- Following the Skill instructions ...[truncated 1105 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove language recommending that users bypass Vercel's commit-author authorization check.
- Correct the underlying identity issue by configuring a verified GitHub no-reply address and appropriate Vercel team membership.
- Require explicit human approval before every deployment API request.
- Default API-triggered deployments to an allowlisted preview branch rather than
main. - Use a narrowly scoped deployment token limited to the required project and environment.
- Prevent the coding agent from reading or printing the token; inject it only into an approved deployment wrapper.
- Add a policy-enforcing wrapper that validates the repository, branch, project, environment, and approval record before invoking Vercel.
- Separate deployment creation from production promotion and require independent approval for promotion.
- Record the requesting identity, commit SHA, target environment, and approval decision in an audit log.
