Research services
Focused reviews for high-risk software
Our researchers examine applications, cloud infrastructure, source control and release pipelines, then work with engineering teams through remediation.
Work with our researchersAn open security research lab

server: "andesyte"
tool: "andesyte_review"
arguments: { pr: "current", scope: "deps" }
fix: bump cross-spawn to patch CVE-2024-21538 #482
andesyte-code-security wants to merge 2 commits into main
"dependencies": { "commander": "^11.1.0", "cross-spawn": "7.0.3", "cross-spawn": "7.0.5", "execa": "^8.0.1",CVE-2024-21538 affects cross-spawn <7.0.5, which is vulnerable to ReDoS via crafted arguments. Traced the call path to src/jobs/run-task.ts:42, where job payloads reach it unsanitised, confirming this is exploitable, not just present in the lockfile. Bumped to 7.0.5, the patched release.
This branch has not been deployed
No deployments
All checks have passed
1 successful check
No conflicts with base branch
Merging can be performed automatically.
The same checks that review your pull requests run locally. Your source code stays on your machine. Dependency scanning sends package names and versions to OSV, and nothing else.
npm install -g @andesyte-oss/cliEach of these was reported to the maintainer, fixed upstream, and then written up in full. The write-ups include the exploit path, because a finding you cannot reproduce is difficult to learn from.
Install the GitHub App once. Every pull request then triggers the same review, inline findings, and safe autofix workflow.

Review this PR before I merge it
server: "andesyte"
tool: "andesyte_review"
arguments: { pr: 53417, scope: "authz" }
Diffed PR #53417 against main
Traced request handling in app/api/chat/route.ts:27
userId is read from the request body, not the authenticated session
Flagged missing authorization check · CWE-862
Severity: critical · user impersonation possible
Both handlers already validate the session correctly
Suggested guard: reject when userId !== session user
Ran the auth test suite against the suggested fix
Posted the fix as a review comment on PR #53417
Done. Impersonation path closed, existing behaviour unchanged for authorised users.
feat: Adding chat generation #53417
lewiswigmore wants to merge 2 commits into main from lewiswigmore/feature
export async function POST(req: NextRequest) { const { userId, messages } = await req.json(); if (userId !== req.user.id) { return NextResponse.json( { error: "Unauthorized" }, { status: 401 }, ); } const stream = await generateChat(messages);Missing authorization check allows user impersonation. userId is taken from the request body instead of the authenticated session, so any signed-in user can act as another by changing the value they send. Add a check that the requested user matches the session before processing.
This branch has not been deployed
No deployments
All checks have passed
1 successful check
No conflicts with base branch
Merging can be performed automatically.
Integrations
Install Andesyte Code Security on GitHub, or connect a GitLab project from the dashboard, to review changes where your team already works.
Add to GitHubAgents
Available now

Research services
Our researchers examine applications, cloud infrastructure, source control and release pipelines, then work with engineering teams through remediation.
Work with our researchersAndesyte Code Security
Andesyte brings the lab's methods into everyday code review, tracing exploitable issues and putting the evidence in front of engineers as code changes.
Explore AndesyteEverything we have published is open, including the parts where the answer was that nothing was wrong.
Careers
If you ship security tools people rely on, we want to know you.
Introduce yourself