Security context

What an agent needs to avoid regressing past fixes and find the next vuln in this repo.

evergreen-ci/evergreen
main @ c5e33e2
167
Fixes
0
CVEs
CRITICAL
Peak severity
50.0%
Coverage
Highlights
Auth Bypass: 81 prior fixes. Scrutinize any change in this area.
model/project_ref.go: most-fixed (9 issues). Treat as high-risk during review.
123 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns

The bug types that recur here, drawn from past fixes, not open vulnerabilities.

Auth Bypass: Numerous GraphQL resolvers and mutations lacked permission checks, allowing unauthorized access to tasks, logs, annotations, and project data. Fixes added directives like requireProjectAccess and specific permission checks, but the breadth of affected resolvers suggests systemic gaps.
Information Disclosure: Sensitive credentials like GitHub tokens and private variables were exposed to task environments and logs. Fixes involved redaction (PutAndRedact), excluding tokens from expansions, and separating private variables, but the repeated nature indicates ongoing leakage risks.
Command Injection: Multiple command injection vectors were found where user-controlled input (branch names, commit messages, file paths) was interpolated into shell commands. Fixes involved removing vulnerable commands, using stdin for commit messages, and validating paths, but the pattern of shell construction is risky.