#174 by GitHub stars
vercel-labs/deepsec
Deepsec is a security harness for finding vulnerabilities in your codebase powered by coding agents
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 4fa67220aff6
No earlier version was observed for comparison.
packages/deepsec/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 4fa67220aff6
No earlier version was observed for comparison.
Verified commit 4fa67220aff67ac93dfc840206d3d32bfa4411ec
git clone --filter=blob:none --no-checkout https://github.com/vercel-labs/deepsec.git .hotskills/vercel-labs-deepsec && git -C .hotskills/vercel-labs-deepsec checkout --detach 4fa67220aff67ac93dfc840206d3d32bfa4411ec
# Copy each selected skill directory from .hotskills/vercel-labs-deepsec into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/vercel-labs/deepsec.git .hotskills/vercel-labs-deepsec && git -C .hotskills/vercel-labs-deepsec checkout --detach 4fa67220aff67ac93dfc840206d3d32bfa4411ec
# Copy each selected skill directory from .hotskills/vercel-labs-deepsec into .agents/skills/<skill-name>/Heat
6.5- Star growth, last 7 daysAhead of 81% of tracked repositories
- Star growth, last 24 hoursAhead of 83% of tracked repositories
- Rank movement, last 7 daysAhead of 61% of tracked repositories
- Commits, last 30 daysAhead of 60% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- deepsec
/ - deepsec-docs
packages/deepsec
How it works
deepsec
When your agent uses it
Run deepsec, an AI-powered cyber-security vulnerability scanner. Activates when the user invokes /deepsec, asks to run deepsec, or wants to scan their repo, branch, or uncommitted changes for vulnerabilities.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
1,191 tokensWhen the skill is activated
Reference documents
66,904 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Ask for scope first
- 2. Detect onboarding state
- 3. Onboard without full processing
- 4. Run the scoped processing
- 5. Interpret results
- Going deeper
Scripts executed separately
.deepsec/deepsec.config.ts.deepsec/matchers/archive-extraction-untrusted.ts.deepsec/package.jsone2e/bundle.test.tse2e/pipeline-sandbox.test.tse2e/pipeline.test.tse2e/scan.test.tse2e/vitest.config.tsfixtures/vulnerable-app/package.jsonfixtures/vulnerable-app/src/api/admin.tsfixtures/vulnerable-app/src/api/upload.tsfixtures/vulnerable-app/src/api/users.tsfixtures/vulnerable-app/src/components/comment.tsxfixtures/vulnerable-app/src/config.tsfixtures/vulnerable-app/src/lib/crypto.tsfixtures/vulnerable-app/src/lib/db.tsfixtures/vulnerable-app/src/lib/fetch-proxy.tsfixtures/vulnerable-app/src/utils/exec-helper.tsfixtures/vulnerable-app/src/utils/redirect.tspackage.jsonpackages/core/package.jsonpackages/core/src/__tests__/finding-id.test.tspackages/core/src/__tests__/paths.test.tspackages/core/src/__tests__/run.test.tspackages/core/src/__tests__/schemas.test.tspackages/core/src/__tests__/severity.test.tspackages/core/src/__tests__/shutdown.test.tspackages/core/src/config.tspackages/core/src/finding-id.tspackages/core/src/index.tspackages/core/src/paths.tspackages/core/src/plugin.tspackages/core/src/run.tspackages/core/src/schemas.tspackages/core/src/types.tspackages/core/vitest.config.tspackages/processor/package.jsonpackages/processor/src/__tests__/attribution.test.tspackages/processor/src/__tests__/batch.test.tspackages/processor/src/__tests__/codex-setup.test.tspackages/processor/src/__tests__/pi-sdk-tools.test.tspackages/processor/src/__tests__/process-revalidate.test.tspackages/processor/src/__tests__/prompt-assemble.test.tspackages/processor/src/__tests__/prompt-samples.fixtures.tspackages/processor/src/__tests__/prompt-samples.test.tspackages/processor/src/__tests__/reconcile.test.tspackages/processor/src/__tests__/registry.test.tspackages/processor/src/__tests__/shared.test.tspackages/processor/src/__tests__/stub-agent.tspackages/processor/src/agents/claude-agent-sdk.tspackages/processor/src/agents/codex-sdk.tspackages/processor/src/agents/codex-wrapper.shpackages/processor/src/agents/pi-sdk.tspackages/processor/src/agents/registry.tspackages/processor/src/agents/shared.tspackages/processor/src/agents/types.tspackages/processor/src/batch.tspackages/processor/src/enrich.tspackages/processor/src/index.tspackages/processor/src/prompt/assemble.tspackages/processor/src/prompt/core.tspackages/processor/src/prompt/file-language.tspackages/processor/src/prompt/highlights.tspackages/processor/src/prompt/index.tspackages/processor/src/prompt/slug-notes.tspackages/processor/src/reconcile.tspackages/processor/src/setup-agent.tspackages/processor/src/triage.tspackages/processor/vitest.config.tspackages/scanner/package.jsonpackages/scanner/src/__tests__/declarative-matcher.test.tspackages/scanner/src/__tests__/detect-tech.test.tspackages/scanner/src/__tests__/framework-matchers.test.tspackages/scanner/src/__tests__/matcher-examples.test.tspackages/scanner/src/__tests__/matchers.test.tspackages/scanner/src/__tests__/scan-files.test.tspackages/scanner/src/__tests__/windows-paths.test.tspackages/scanner/src/declarative-matcher.tspackages/scanner/src/detect-tech.tspackages/scanner/src/index.tspackages/scanner/src/matcher-registry.tspackages/scanner/src/matchers/agent-loop-no-cap.tspackages/scanner/src/matchers/agent-tool-definition.tspackages/scanner/src/matchers/agentic-untrusted-prompt-input.tspackages/scanner/src/matchers/algorithm-confusion.tspackages/scanner/src/matchers/android-manifest-export.tspackages/scanner/src/matchers/apex-rest-resource.tspackages/scanner/src/matchers/auth-bypass.tspackages/scanner/src/matchers/azure-function-handler.tspackages/scanner/src/matchers/cache-key-poisoning.tspackages/scanner/src/matchers/cache-key-scope.tspackages/scanner/src/matchers/clj-ring-handler.tspackages/scanner/src/matchers/connectrpc-handler-impl.tspackages/scanner/src/matchers/cors-wildcard.tspackages/scanner/src/matchers/cr-kemal-route.tspackages/scanner/src/matchers/cron-secret-check.tspackages/scanner/src/matchers/cross-tenant-id.tspackages/scanner/src/matchers/crypto-usage.tspackages/scanner/src/matchers/dangerous-html.tspackages/scanner/src/matchers/dart-shelf-handler.tspackages/scanner/src/matchers/debug-endpoint.tspackages/scanner/src/matchers/dev-auth-bypass.tspackages/scanner/src/matchers/dockerfile-curl-pipe-unverified.tspackages/scanner/src/matchers/dockerfile-from-mutable-tag.tspackages/scanner/src/matchers/dockerfile-run-as-root.tspackages/scanner/src/matchers/dotnet-aspnet-controller.tspackages/scanner/src/matchers/dotnet-azure-function.tspackages/scanner/src/matchers/dotnet-minimal-api.tspackages/scanner/src/matchers/dotnet-razor-pages.tspackages/scanner/src/matchers/dotnet-sql-raw.tspackages/scanner/src/matchers/drizzle-mass-assignment.tspackages/scanner/src/matchers/drizzle-raw-sql.tspackages/scanner/src/matchers/env-exposure.tspackages/scanner/src/matchers/env-var-as-bool.tspackages/scanner/src/matchers/erl-cowboy-handler.tspackages/scanner/src/matchers/error-message-leak.tspackages/scanner/src/matchers/event-handler-mismatch.tspackages/scanner/src/matchers/ex-phoenix-controller.tspackages/scanner/src/matchers/expensive-api-abuse.tspackages/scanner/src/matchers/fs-write-symlink-boundary.tspackages/scanner/src/matchers/gcp-cloud-function.tspackages/scanner/src/matchers/git-provider-url-injection.tspackages/scanner/src/matchers/github-workflow-security.tspackages/scanner/src/matchers/go-buffalo-route.tspackages/scanner/src/matchers/go-chi-route.tspackages/scanner/src/matchers/go-cobra-command.tspackages/scanner/src/matchers/go-command-injection.tspackages/scanner/src/matchers/go-echo-route.tspackages/scanner/src/matchers/go-embed-asset.tspackages/scanner/src/matchers/go-fiber-route.tspackages/scanner/src/matchers/go-gin-route.tspackages/scanner/src/matchers/go-gorilla-route.tspackages/scanner/src/matchers/go-http-handler.tspackages/scanner/src/matchers/go-sql-raw.tspackages/scanner/src/matchers/go-ssrf.tspackages/scanner/src/matchers/iam-permissions.tspackages/scanner/src/matchers/index.tspackages/scanner/src/matchers/insecure-crypto.tspackages/scanner/src/matchers/ios-url-scheme.tspackages/scanner/src/matchers/js-astro-endpoint.tspackages/scanner/src/matchers/js-bullmq-processor.tspackages/scanner/src/matchers/js-bun-serve.tspackages/scanner/src/matchers/js-deno-route.tspackages/scanner/src/matchers/js-express-route.tspackages/scanner/src/matchers/js-fastify-route.tspackages/scanner/src/matchers/js-graphql-resolver.tspackages/scanner/src/matchers/js-hapi-route.tspackages/scanner/src/matchers/js-hono-route.tspackages/scanner/src/matchers/js-koa-route.tspackages/scanner/src/matchers/js-nestjs-controller.tspackages/scanner/src/matchers/js-nextjs-catch-all-route-auth.tspackages/scanner/src/matchers/js-nextjs-catchall-router.tspackages/scanner/src/matchers/js-nextjs-edge-sandbox.tspackages/scanner/src/matchers/js-nextjs-fw-server-action.tspackages/scanner/src/matchers/js-nextjs-image-optimizer.tspackages/scanner/src/matchers/js-nextjs-internal-header.tspackages/scanner/src/matchers/js-nextjs-middleware-only-auth.tspackages/scanner/src/matchers/js-nextjs-middleware.tspackages/scanner/src/matchers/js-nextjs-page-data-fetch.tspackages/scanner/src/matchers/js-nextjs-page-without-auth-fetch.tspackages/scanner/src/matchers/js-nextjs-route-handlers.tspackages/scanner/src/matchers/js-nextjs-server-action-no-auth.tspackages/scanner/src/matchers/js-nextjs-server-action.tspackages/scanner/src/matchers/js-nextjs-server-actions.tspackages/scanner/src/matchers/js-nextjs-untrusted-fetch.tspackages/scanner/src/matchers/js-nextjs-use-server-export.tspackages/scanner/src/matchers/js-nosql-injection.tspackages/scanner/src/matchers/js-nuxt-route.tspackages/scanner/src/matchers/js-react-unsafe-json-in-html.tspackages/scanner/src/matchers/js-remix-route.tspackages/scanner/src/matchers/js-socketio-handler.tspackages/scanner/src/matchers/js-solidstart-action.tspackages/scanner/src/matchers/js-sql-raw.tspackages/scanner/src/matchers/js-sveltekit-route.tspackages/scanner/src/matchers/js-workers-fetch.tspackages/scanner/src/matchers/jvm-jaxrs-resource.tspackages/scanner/src/matchers/jvm-ktor-route.tspackages/scanner/src/matchers/jvm-micronaut-controller.tspackages/scanner/src/matchers/jvm-spring-controller.tspackages/scanner/src/matchers/jvm-sql-raw.tspackages/scanner/src/matchers/jwt-handling.tspackages/scanner/src/matchers/k8s-secret-reference.tspackages/scanner/src/matchers/k8s-secrets-init-container.tspackages/scanner/src/matchers/lambda-aws-handler.tspackages/scanner/src/matchers/lua-crypto-weakness.tspackages/scanner/src/matchers/lua-ngx-exec.tspackages/scanner/src/matchers/lua-regex-bypass.tspackages/scanner/src/matchers/lua-shared-dict-poisoning.tspackages/scanner/src/matchers/lua-string-concat-url.tspackages/scanner/src/matchers/mcp-tool-handler.tspackages/scanner/src/matchers/missing-auth.tspackages/scanner/src/matchers/missing-await.tspackages/scanner/src/matchers/non-atomic-operation.tspackages/scanner/src/matchers/non-atomic-read-delete.tspackages/scanner/src/matchers/oauth-flow.tspackages/scanner/src/matchers/object-injection.tspackages/scanner/src/matchers/open-redirect.tspackages/scanner/src/matchers/path-traversal.tspackages/scanner/src/matchers/php-cakephp-controller.tspackages/scanner/src/matchers/php-codeigniter-controller.tspackages/scanner/src/matchers/php-drupal-controller.tspackages/scanner/src/matchers/php-laravel-route.tspackages/scanner/src/matchers/php-magento-controller.tspackages/scanner/src/matchers/php-slim-route.tspackages/scanner/src/matchers/php-sql-raw.tspackages/scanner/src/matchers/php-symfony-controller.tspackages/scanner/src/matchers/php-wordpress-rest.tspackages/scanner/src/matchers/php-yii-controller.tspackages/scanner/src/matchers/postmessage-origin.tspackages/scanner/src/matchers/prisma-raw-sql.tspackages/scanner/src/matchers/process-env-access.tspackages/scanner/src/matchers/prompt-leaks-system-prompt.tspackages/scanner/src/matchers/proto-rpc-surface.tspackages/scanner/src/matchers/public-endpoint.tspackages/scanner/src/matchers/py-aiohttp-route.tspackages/scanner/src/matchers/py-airflow-dag.tspackages/scanner/src/matchers/py-bottle-route.tspackages/scanner/src/matchers/py-celery-task.tspackages/scanner/src/matchers/py-django-view.tspackages/scanner/src/matchers/py-falcon-resource.tspackages/scanner/src/matchers/py-fastapi-route.tspackages/scanner/src/matchers/py-flask-route.tspackages/scanner/src/matchers/py-nosql-injection.tspackages/scanner/src/matchers/py-sanic-route.tspackages/scanner/src/matchers/py-sql-raw.tspackages/scanner/src/matchers/py-starlette-route.tspackages/scanner/src/matchers/py-tornado-handler.tspackages/scanner/src/matchers/rate-limit-bypass.tspackages/scanner/src/matchers/rb-grape-endpoint.tspackages/scanner/src/matchers/rb-hanami-action.tspackages/scanner/src/matchers/rb-rails-controller.tspackages/scanner/src/matchers/rb-roda-route.tspackages/scanner/src/matchers/rb-sinatra-route.tspackages/scanner/src/matchers/rb-sql-raw.tspackages/scanner/src/matchers/rce.tspackages/scanner/src/matchers/response-header-leak.tspackages/scanner/src/matchers/rs-actix-route.tspackages/scanner/src/matchers/rs-axum-route.tspackages/scanner/src/matchers/rs-lambda-runtime.tspackages/scanner/src/matchers/rs-poem-route.tspackages/scanner/src/matchers/rs-rocket-route.tspackages/scanner/src/matchers/rs-sql-raw.tspackages/scanner/src/matchers/rs-tide-route.tspackages/scanner/src/matchers/rs-tonic-grpc.tspackages/scanner/src/matchers/rs-warp-filter.tspackages/scanner/src/matchers/sandbox-runtime-script.tspackages/scanner/src/matchers/secret-env-var.tspackages/scanner/src/matchers/secret-in-fallback.tspackages/scanner/src/matchers/secret-in-log.tspackages/scanner/src/matchers/secrets-exposure.tspackages/scanner/src/matchers/secrets-plaintext-exposure.tspackages/scanner/src/matchers/security-behind-flag.tspackages/scanner/src/matchers/sensitive-data-in-traces.tspackages/scanner/src/matchers/service-entry-point.tspackages/scanner/src/matchers/session-cookie-config.tspackages/scanner/src/matchers/slack-signing-verification.tspackages/scanner/src/matchers/snowflake-bigquery-sql.tspackages/scanner/src/matchers/soql-injection.tspackages/scanner/src/matchers/spread-operator-injection.tspackages/scanner/src/matchers/sql-injection.tspackages/scanner/src/matchers/ssrf.tspackages/scanner/src/matchers/streaming-endpoint.tspackages/scanner/src/matchers/swift-vapor-route.tspackages/scanner/src/matchers/test-header-bypass.tspackages/scanner/src/matchers/tf-encryption-missing.tspackages/scanner/src/matchers/tf-iac-surface.tspackages/scanner/src/matchers/tf-iam-wildcard.tspackages/scanner/src/matchers/tf-module-unpinned.tspackages/scanner/src/matchers/tf-public-ingress.tspackages/scanner/src/matchers/tf-secret-in-data.tspackages/scanner/src/matchers/trpc-public-procedure.tspackages/scanner/src/matchers/unix-socket-listener.tspackages/scanner/src/matchers/unsafe-deserialization.tspackages/scanner/src/matchers/unsafe-redirect.tspackages/scanner/src/matchers/untrusted-redirect-following.tspackages/scanner/src/matchers/unverified-lookup.tspackages/scanner/src/matchers/url-regex-validation.tspackages/scanner/src/matchers/utils.tspackages/scanner/src/matchers/webhook-handler.tspackages/scanner/src/matchers/xss.tspackages/scanner/src/matchers/zod-passthrough-mass-assignment.tspackages/scanner/src/types.tspackages/scanner/vitest.config.tspackages/website/app/api/search/route.tspackages/website/app/docs/[...slug]/page.tsxpackages/website/app/docs/layout.tsxpackages/website/app/docs/page.tsxpackages/website/app/layout.tsxpackages/website/app/page.tsxpackages/website/app/rss.xml/route.tspackages/website/components/geistdocs/mdx-components.tsxpackages/website/components/geistdocs/provider.tsxpackages/website/components/run-command.tsxpackages/website/eslint.config.mjspackages/website/lib/geistdocs/config.tsxpackages/website/lib/geistdocs/fonts.tspackages/website/lib/geistdocs/source.tspackages/website/next.config.tspackages/website/package.jsonpackages/website/postcss.config.mjspackages/website/source.config.tssamples/webapp/deepsec.config.tssamples/webapp/matchers/webapp-debug-flag.tssamples/webapp/matchers/webapp-route-no-rate-limit.tssamples/webapp/package.jsonvitest.workspace.ts
Files
.agents/skills/technical-writer/SKILL.mddoc15,718 bytes.agents/skills/technical-writer/references/content-patterns.mddoc5,501 bytes.agents/skills/technical-writer/references/editorial-standards.mddoc8,424 bytes.agents/skills/technical-writer/references/technical-verification.mddoc9,688 bytes.deepsec/.gitignoreasset486 bytes.deepsec/AGENTS.mddoc841 bytes.deepsec/README.mddoc5,812 bytes.deepsec/data/deepsec/INFO.mddoc6,480 bytes.deepsec/data/deepsec/SETUP.mddoc2,274 bytes.deepsec/data/deepsec/files/.env.local.jsonasset3,359 bytes.deepsec/data/deepsec/files/.github/workflows/ci.yml.jsonasset5,975 bytes.deepsec/data/deepsec/files/.github/workflows/deepsec.yml.jsonasset8,345 bytes.deepsec/data/deepsec/files/.github/workflows/e2e-live-sandbox.yml.jsonasset2,401 bytes.deepsec/data/deepsec/files/.github/workflows/release.yml.jsonasset6,395 bytes.deepsec/data/deepsec/files/e2e/vitest.config.ts.jsonasset2,380 bytes.deepsec/data/deepsec/files/packages/core/src/paths.ts.jsonasset6,696 bytes.deepsec/data/deepsec/files/packages/core/src/plugin.ts.jsonasset2,550 bytes.deepsec/data/deepsec/files/packages/core/src/run.ts.jsonasset10,372 bytes.deepsec/data/deepsec/files/packages/core/src/schemas.ts.jsonasset2,255 bytes.deepsec/data/deepsec/files/packages/core/src/types.ts.jsonasset2,508 bytes.deepsec/data/deepsec/files/packages/deepsec/src/cli.ts.jsonasset4,384 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/export.ts.jsonasset7,900 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/init-project.ts.jsonasset8,867 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/init.ts.jsonasset3,705 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/metrics.ts.jsonasset6,049 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/process.ts.jsonasset2,489 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/report.ts.jsonasset2,336 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/sandbox-all.ts.jsonasset6,519 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/sandbox-process.ts.jsonasset2,803 bytes.deepsec/data/deepsec/files/packages/deepsec/src/commands/scan.ts.jsonasset3,126 bytes.deepsec/data/deepsec/files/packages/deepsec/src/data-commit.ts.jsonasset13,215 bytes.deepsec/data/deepsec/files/packages/deepsec/src/file-sources.ts.jsonasset2,567 bytes.deepsec/data/deepsec/files/packages/deepsec/src/pr-comment.ts.jsonasset2,597 bytes.deepsec/data/deepsec/files/packages/deepsec/src/preflight.ts.jsonasset11,392 bytes.deepsec/data/deepsec/files/packages/deepsec/src/resolve-project-id.ts.jsonasset3,016 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/download.ts.jsonasset17,536 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/merge-records.ts.jsonasset9,332 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/orchestrator.ts.jsonasset6,641 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/request-proxy.mjs.jsonasset2,714 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/setup.ts.jsonasset9,328 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/state.ts.jsonasset5,732 bytes.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/upload.ts.jsonasset9,216 bytes.deepsec/data/deepsec/files/packages/processor/src/agents/claude-agent-sdk.ts.jsonasset2,655 bytes.deepsec/data/deepsec/files/packages/processor/src/agents/codex-sdk.ts.jsonasset41,224 bytes.deepsec/data/deepsec/files/packages/processor/src/agents/shared.ts.jsonasset11,184 bytes.deepsec/data/deepsec/files/packages/processor/src/enrich.ts.jsonasset7,570 bytes.deepsec/data/deepsec/files/packages/processor/src/index.ts.jsonasset15,148 bytes.deepsec/data/deepsec/files/packages/processor/src/prompt/core.ts.jsonasset5,132 bytes.deepsec/data/deepsec/files/packages/processor/src/prompt/highlights.ts.jsonasset11,439 bytes.deepsec/data/deepsec/files/packages/processor/src/prompt/slug-notes.ts.jsonasset10,548 bytes.deepsec/data/deepsec/files/packages/processor/src/triage.ts.jsonasset2,297 bytes.deepsec/data/deepsec/files/packages/scanner/src/detect-tech.ts.jsonasset2,544 bytes.deepsec/data/deepsec/files/packages/scanner/src/index.ts.jsonasset8,064 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/agent-loop-no-cap.ts.jsonasset7,009 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/agent-tool-definition.ts.jsonasset14,358 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/agentic-untrusted-prompt-input.ts.jsonasset10,835 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/algorithm-confusion.ts.jsonasset8,150 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/all-route-handlers.ts.jsonasset2,876 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/all-server-actions.ts.jsonasset1,923 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/android-manifest-export.ts.jsonasset1,699 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/apex-rest-resource.ts.jsonasset2,330 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/auth-bypass.ts.jsonasset5,485 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/azure-function-handler.ts.jsonasset2,398 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/cache-key-poisoning.ts.jsonasset10,381 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/cache-key-scope.ts.jsonasset6,128 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/catch-all-route-auth.ts.jsonasset2,390 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/catchall-router.ts.jsonasset2,354 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/clj-ring-handler.ts.jsonasset2,322 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/connectrpc-handler-impl.ts.jsonasset2,427 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/cors-wildcard.ts.jsonasset6,035 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/cr-kemal-route.ts.jsonasset2,287 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/cron-secret-check.ts.jsonasset4,510 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/cross-tenant-id.ts.jsonasset5,820 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/crypto-usage.ts.jsonasset6,774 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dangerous-html.ts.jsonasset14,360 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dart-shelf-handler.ts.jsonasset5,035 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/debug-endpoint.ts.jsonasset6,937 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dev-auth-bypass.ts.jsonasset12,658 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dockerfile-curl-pipe-unverified.ts.jsonasset2,421 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dockerfile-from-mutable-tag.ts.jsonasset2,332 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dockerfile-run-as-root.ts.jsonasset2,409 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dotnet-aspnet-controller.ts.jsonasset2,361 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dotnet-azure-function.ts.jsonasset2,365 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dotnet-minimal-api.ts.jsonasset2,338 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dotnet-razor-pages.ts.jsonasset2,365 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/dotnet-sql-raw.ts.jsonasset7,236 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/drizzle-mass-assignment.ts.jsonasset3,817 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/drizzle-raw-sql.ts.jsonasset6,446 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/env-exposure.ts.jsonasset11,276 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/env-var-as-bool.ts.jsonasset7,645 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/erl-cowboy-handler.ts.jsonasset834 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/error-message-leak.ts.jsonasset1,831 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/event-handler-mismatch.ts.jsonasset4,771 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/ex-phoenix-controller.ts.jsonasset2,759 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/expensive-api-abuse.ts.jsonasset16,756 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/framework-edge-sandbox.ts.jsonasset1,890 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/framework-image-optimizer.ts.jsonasset2,830 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/framework-internal-header.ts.jsonasset3,723 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/framework-server-action.ts.jsonasset3,887 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/framework-untrusted-fetch.ts.jsonasset2,950 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/fs-write-symlink-boundary.ts.jsonasset5,001 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/gcp-cloud-function.ts.jsonasset879 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/git-provider-url-injection.ts.jsonasset5,347 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/github-workflow-security.ts.jsonasset1,857 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-buffalo-route.ts.jsonasset1,614 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-chi-route.ts.jsonasset1,595 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-cobra-command.ts.jsonasset2,332 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-command-injection.ts.jsonasset2,368 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-echo-route.ts.jsonasset2,298 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-embed-asset.ts.jsonasset2,355 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-fiber-route.ts.jsonasset2,292 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-gin-route.ts.jsonasset2,303 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-gorilla-route.ts.jsonasset2,302 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-http-handler.ts.jsonasset3,146 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-sql-raw.ts.jsonasset5,947 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/go-ssrf.ts.jsonasset4,947 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/iam-permissions.ts.jsonasset2,373 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/index.ts.jsonasset6,073 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/insecure-crypto.ts.jsonasset7,698 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/ios-url-scheme.ts.jsonasset2,350 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-astro-endpoint.ts.jsonasset3,804 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-bullmq-processor.ts.jsonasset2,327 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-bun-serve.ts.jsonasset2,312 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-deno-route.ts.jsonasset2,708 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-express-route.ts.jsonasset2,661 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-fastify-route.ts.jsonasset2,793 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-graphql-resolver.ts.jsonasset2,331 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-hapi-route.ts.jsonasset2,309 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-hono-route.ts.jsonasset2,665 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-koa-route.ts.jsonasset2,636 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nestjs-controller.ts.jsonasset3,206 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-catch-all-route-auth.ts.jsonasset2,344 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-catchall-router.ts.jsonasset5,984 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-edge-sandbox.ts.jsonasset3,404 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-fw-server-action.ts.jsonasset2,380 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-image-optimizer.ts.jsonasset2,405 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-internal-header.ts.jsonasset2,785 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-middleware-only-auth.ts.jsonasset2,759 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-middleware.ts.jsonasset6,913 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-page-data-fetch.ts.jsonasset4,921 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-page-without-auth-fetch.ts.jsonasset2,343 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-route-handlers.ts.jsonasset7,489 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-server-action-no-auth.ts.jsonasset3,487 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-server-action.ts.jsonasset2,318 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-server-actions.ts.jsonasset2,405 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-untrusted-fetch.ts.jsonasset4,571 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-use-server-export.ts.jsonasset2,352 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nosql-injection.ts.jsonasset6,556 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nuxt-route.ts.jsonasset2,354 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-react-unsafe-json-in-html.ts.jsonasset10,028 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-remix-route.ts.jsonasset2,861 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-socketio-handler.ts.jsonasset2,732 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-solidstart-action.ts.jsonasset2,357 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-sql-raw.ts.jsonasset14,563 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-sveltekit-route.ts.jsonasset4,306 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-workers-fetch.ts.jsonasset2,348 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/jvm-jaxrs-resource.ts.jsonasset2,328 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/jvm-ktor-route.ts.jsonasset2,289 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/jvm-micronaut-controller.ts.jsonasset2,342 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/jvm-spring-controller.ts.jsonasset2,340 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/jvm-sql-raw.ts.jsonasset9,742 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/jwt-handling.ts.jsonasset10,394 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/k8s-secret-reference.ts.jsonasset2,398 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/k8s-secrets-init-container.ts.jsonasset2,391 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/lambda-aws-handler.ts.jsonasset3,526 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/lua-crypto-weakness.ts.jsonasset3,620 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/lua-ngx-exec.ts.jsonasset2,690 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/lua-regex-bypass.ts.jsonasset4,202 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/lua-shared-dict-poisoning.ts.jsonasset3,535 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/lua-string-concat-url.ts.jsonasset3,205 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/mcp-tool-handler.ts.jsonasset3,526 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/missing-auth.ts.jsonasset3,372 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/missing-await.ts.jsonasset9,013 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/nextjs-middleware-only-auth.ts.jsonasset2,825 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/nextjs-middleware.ts.jsonasset3,233 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/non-atomic-operation.ts.jsonasset4,533 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/non-atomic-read-delete.ts.jsonasset7,531 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/oauth-flow.ts.jsonasset2,173 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/object-injection.ts.jsonasset4,753 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/open-redirect.ts.jsonasset8,197 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/page-data-fetch.ts.jsonasset3,551 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/page-without-auth-fetch.ts.jsonasset3,538 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/path-traversal.ts.jsonasset4,667 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-cakephp-controller.ts.jsonasset3,541 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-codeigniter-controller.ts.jsonasset1,748 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-drupal-controller.ts.jsonasset1,668 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-laravel-route.ts.jsonasset2,837 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-magento-controller.ts.jsonasset1,702 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-slim-route.ts.jsonasset2,730 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-sql-raw.ts.jsonasset5,295 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-symfony-controller.ts.jsonasset1,733 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-wordpress-rest.ts.jsonasset2,337 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-yii-controller.ts.jsonasset2,357 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/postmessage-origin.ts.jsonasset5,226 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/prisma-raw-sql.ts.jsonasset4,800 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/process-env-access.ts.jsonasset4,755 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/prompt-leaks-system-prompt.ts.jsonasset8,856 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/proto-rpc-surface.ts.jsonasset2,343 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/public-endpoint.ts.jsonasset2,349 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-aiohttp-route.ts.jsonasset2,657 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-airflow-dag.ts.jsonasset2,354 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-bottle-route.ts.jsonasset2,303 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-celery-task.ts.jsonasset2,349 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-django-view.ts.jsonasset2,368 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-falcon-resource.ts.jsonasset2,333 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-fastapi-route.ts.jsonasset3,806 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-flask-route.ts.jsonasset4,489 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-nosql-injection.ts.jsonasset3,305 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-sanic-route.ts.jsonasset4,083 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-sql-raw.ts.jsonasset5,657 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-starlette-route.ts.jsonasset2,791 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/py-tornado-handler.ts.jsonasset2,331 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rate-limit-bypass.ts.jsonasset6,243 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-grape-endpoint.ts.jsonasset2,294 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-hanami-action.ts.jsonasset2,323 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-rails-controller.ts.jsonasset2,724 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-roda-route.ts.jsonasset2,266 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-sinatra-route.ts.jsonasset2,282 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-sql-raw.ts.jsonasset4,178 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rce.ts.jsonasset6,389 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/response-header-leak.ts.jsonasset6,555 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-actix-route.ts.jsonasset2,306 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-axum-route.ts.jsonasset3,957 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-lambda-runtime.ts.jsonasset2,314 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-poem-route.ts.jsonasset2,276 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-rocket-route.ts.jsonasset2,305 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-sql-raw.ts.jsonasset6,050 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-tide-route.ts.jsonasset2,613 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-tonic-grpc.ts.jsonasset2,293 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/rs-warp-filter.ts.jsonasset2,315 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/sandbox-runtime-script.ts.jsonasset2,792 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/secret-env-var.ts.jsonasset7,191 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/secret-in-fallback.ts.jsonasset8,395 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/secret-in-log.ts.jsonasset7,637 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/secrets-exposure.ts.jsonasset6,392 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/secrets-plaintext-exposure.ts.jsonasset4,634 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/security-behind-flag.ts.jsonasset6,032 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/sensitive-data-in-traces.ts.jsonasset6,209 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/server-action-no-auth.ts.jsonasset2,399 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/server-action.ts.jsonasset2,721 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/service-entry-point.ts.jsonasset2,380 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/session-cookie-config.ts.jsonasset12,089 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/slack-signing-verification.ts.jsonasset7,787 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/snowflake-bigquery-sql.ts.jsonasset5,226 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/soql-injection.ts.jsonasset5,442 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/spread-operator-injection.ts.jsonasset4,854 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/sql-injection.ts.jsonasset15,846 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/ssrf.ts.jsonasset5,110 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/streaming-endpoint.ts.jsonasset3,153 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/swift-vapor-route.ts.jsonasset4,868 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/test-header-bypass.ts.jsonasset15,016 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-encryption-missing.ts.jsonasset2,413 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-iac-surface.ts.jsonasset2,447 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-iam-wildcard.ts.jsonasset2,379 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-module-unpinned.ts.jsonasset6,187 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-public-ingress.ts.jsonasset2,319 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-secret-in-data.ts.jsonasset3,692 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/trpc-public-procedure.ts.jsonasset2,984 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/unix-socket-listener.ts.jsonasset2,367 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/unsafe-deserialization.ts.jsonasset5,523 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/unsafe-json-in-html.ts.jsonasset10,771 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/unsafe-redirect.ts.jsonasset9,373 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/untrusted-redirect-following.ts.jsonasset11,429 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/unverified-lookup.ts.jsonasset5,877 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/url-regex-validation.ts.jsonasset7,044 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/use-server-export.ts.jsonasset2,381 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/webhook-handler.ts.jsonasset3,319 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/xss.ts.jsonasset7,899 bytes.deepsec/data/deepsec/files/packages/scanner/src/matchers/zod-passthrough-mass-assignment.ts.jsonasset9,411 bytes.deepsec/data/deepsec/files/samples/webapp/matchers/webapp-debug-flag.ts.jsonasset2,804 bytes.deepsec/data/deepsec/files/samples/webapp/matchers/webapp-route-no-rate-limit.ts.jsonasset2,494 bytes.deepsec/data/deepsec/tech.jsonasset204 bytes.deepsec/deepsec.config.tsruns425 bytes.deepsec/matchers/archive-extraction-untrusted.tsruns3,636 bytes.deepsec/package.jsonruns305 bytes.deepsec/pnpm-lock.yamlasset197 bytes.deepsec/pnpm-workspace.yamlasset297 bytes.deepsec/tsconfig.jsonasset341 bytes.env.exampleasset571 bytes.github/ISSUE_TEMPLATE/bug.mddoc718 bytes.github/ISSUE_TEMPLATE/feature.mddoc489 bytes.github/ISSUE_TEMPLATE/matcher-suggestion.mddoc989 bytes.github/PULL_REQUEST_TEMPLATE.mddoc558 bytes.github/workflows/bump-version.ymlasset9,970 bytes.github/workflows/ci.ymlasset1,745 bytes.github/workflows/deepsec.ymlasset4,007 bytes.github/workflows/e2e-live-sandbox.ymlasset1,182 bytes.github/workflows/release.ymlasset6,430 bytes.gitignoreasset197 bytesCLAUDE.mddoc1,856 bytesCODE_OF_CONDUCT.mddoc466 bytesCONTRIBUTING.mddoc5,629 bytesLICENSEasset11,358 bytesNOTICEasset134 bytesREADME.mddoc7,882 bytesSECURITY.mddoc322 bytesSKILL.mdcore4,972 bytesSKILL.mdcore4,972 bytesbiome.jsonasset1,445 bytesdocs/architecture.mddoc8,624 bytesdocs/configuration.mddoc7,926 bytesdocs/data-layout.mddoc11,005 bytesdocs/faq.mddoc7,328 bytesdocs/getting-started.mddoc8,864 bytesdocs/meta.jsonasset234 bytesdocs/models.mddoc10,316 bytesdocs/plugins.mddoc7,764 bytesdocs/reviewing-changes.mddoc10,231 bytesdocs/supported-tech.mddoc8,307 bytesdocs/vercel-setup.mddoc8,157 bytesdocs/writing-matchers.mddoc6,658 bytese2e/bundle.test.tsruns30,819 bytese2e/pipeline-sandbox.test.tsruns17,905 bytese2e/pipeline.test.tsruns12,683 bytese2e/scan.test.tsruns6,012 bytese2e/vitest.config.tsruns1,048 bytesfixtures/vulnerable-app/package.jsonruns72 bytesfixtures/vulnerable-app/src/api/admin.tsruns519 bytesfixtures/vulnerable-app/src/api/upload.tsruns517 bytesfixtures/vulnerable-app/src/api/users.tsruns602 bytesfixtures/vulnerable-app/src/components/comment.tsxruns616 bytesfixtures/vulnerable-app/src/config.tsruns465 bytesfixtures/vulnerable-app/src/lib/crypto.tsruns690 bytesfixtures/vulnerable-app/src/lib/db.tsruns653 bytesfixtures/vulnerable-app/src/lib/fetch-proxy.tsruns493 bytesfixtures/vulnerable-app/src/utils/exec-helper.tsruns653 bytesfixtures/vulnerable-app/src/utils/redirect.tsruns453 bytesknip.jsonasset1,245 bytespackage.jsonruns1,753 bytespackages/core/package.jsonruns229 bytespackages/core/src/__tests__/finding-id.test.tsruns3,334 bytespackages/core/src/__tests__/paths.test.tsruns2,188 bytespackages/core/src/__tests__/run.test.tsruns7,787 bytespackages/core/src/__tests__/schemas.test.tsruns5,226 bytespackages/core/src/__tests__/severity.test.tsruns4,034 bytespackages/core/src/__tests__/shutdown.test.tsruns6,472 bytespackages/core/src/config.tsruns3,867 bytespackages/core/src/finding-id.tsruns2,456 bytespackages/core/src/index.tsruns203 bytespackages/core/src/paths.tsruns3,824 bytespackages/core/src/plugin.tsruns6,622 bytespackages/core/src/run.tsruns16,284 bytespackages/core/src/schemas.tsruns9,941 bytespackages/core/src/types.tsruns10,760 bytespackages/core/tsconfig.jsonasset137 bytespackages/core/vitest.config.tsruns159 bytespackages/processor/package.jsonruns485 bytespackages/processor/src/__tests__/attribution.test.tsruns3,627 bytespackages/processor/src/__tests__/batch.test.tsruns1,737 bytespackages/processor/src/__tests__/codex-setup.test.tsruns618 bytespackages/processor/src/__tests__/pi-sdk-tools.test.tsruns8,554 bytespackages/processor/src/__tests__/process-revalidate.test.tsruns59,424 bytespackages/processor/src/__tests__/prompt-assemble.test.tsruns3,585 bytespackages/processor/src/__tests__/prompt-samples.fixtures.tsruns10,851 bytespackages/processor/src/__tests__/prompt-samples.test.tsruns4,523 bytespackages/processor/src/__tests__/reconcile.test.tsruns15,508 bytespackages/processor/src/__tests__/registry.test.tsruns2,049 bytespackages/processor/src/__tests__/shared.test.tsruns25,130 bytespackages/processor/src/__tests__/stub-agent.tsruns3,027 bytespackages/processor/src/agents/claude-agent-sdk.tsruns28,486 bytespackages/processor/src/agents/codex-sdk.tsruns49,670 bytespackages/processor/src/agents/codex-wrapper.shruns990 bytespackages/processor/src/agents/pi-sdk.tsruns40,395 bytespackages/processor/src/agents/registry.tsruns373 bytespackages/processor/src/agents/shared.tsruns46,515 bytespackages/processor/src/agents/types.tsruns4,906 bytespackages/processor/src/batch.tsruns1,291 bytespackages/processor/src/enrich.tsruns8,578 bytespackages/processor/src/index.tsruns63,641 bytespackages/processor/src/prompt/assemble.tsruns7,422 bytespackages/processor/src/prompt/core.tsruns7,103 bytespackages/processor/src/prompt/file-language.tsruns1,489 bytespackages/processor/src/prompt/highlights.tsruns45,059 bytespackages/processor/src/prompt/index.tsruns327 bytespackages/processor/src/prompt/slug-notes.tsruns20,757 bytespackages/processor/src/reconcile.tsruns10,739 bytespackages/processor/src/setup-agent.tsruns869 bytespackages/processor/src/triage.tsruns8,568 bytespackages/processor/tsconfig.jsonasset137 bytespackages/processor/vitest.config.tsruns164 bytespackages/scanner/package.jsonruns319 bytespackages/scanner/src/__tests__/declarative-matcher.test.tsruns5,315 bytespackages/scanner/src/__tests__/detect-tech.test.tsruns6,962 bytespackages/scanner/src/__tests__/framework-matchers.test.tsruns6,867 bytespackages/scanner/src/__tests__/matcher-examples.test.tsruns5,787 bytespackages/scanner/src/__tests__/matchers.test.tsruns4,956 bytespackages/scanner/src/__tests__/scan-files.test.tsruns4,085 bytespackages/scanner/src/__tests__/windows-paths.test.tsruns2,452 bytespackages/scanner/src/declarative-matcher.tsruns9,898 bytespackages/scanner/src/detect-tech.tsruns17,214 bytespackages/scanner/src/index.tsruns25,492 bytespackages/scanner/src/matcher-registry.tsruns649 bytespackages/scanner/src/matchers/agent-loop-no-cap.tsruns3,244 bytespackages/scanner/src/matchers/agent-tool-definition.tsruns3,171 bytespackages/scanner/src/matchers/agentic-untrusted-prompt-input.tsruns4,214 bytespackages/scanner/src/matchers/algorithm-confusion.tsruns1,842 bytespackages/scanner/src/matchers/android-manifest-export.tsruns1,879 bytespackages/scanner/src/matchers/apex-rest-resource.tsruns1,841 bytespackages/scanner/src/matchers/auth-bypass.tsruns1,556 bytespackages/scanner/src/matchers/azure-function-handler.tsruns1,865 bytespackages/scanner/src/matchers/cache-key-poisoning.tsruns2,460 bytespackages/scanner/src/matchers/cache-key-scope.tsruns3,133 bytespackages/scanner/src/matchers/clj-ring-handler.tsruns1,659 bytespackages/scanner/src/matchers/connectrpc-handler-impl.tsruns3,210 bytespackages/scanner/src/matchers/cors-wildcard.tsruns1,791 bytespackages/scanner/src/matchers/cr-kemal-route.tsruns1,594 bytespackages/scanner/src/matchers/cron-secret-check.tsruns3,148 bytespackages/scanner/src/matchers/cross-tenant-id.tsruns2,718 bytespackages/scanner/src/matchers/crypto-usage.tsruns7,374 bytespackages/scanner/src/matchers/dangerous-html.tsruns2,482 bytespackages/scanner/src/matchers/dart-shelf-handler.tsruns1,751 bytespackages/scanner/src/matchers/debug-endpoint.tsruns2,771 bytespackages/scanner/src/matchers/dev-auth-bypass.tsruns3,402 bytespackages/scanner/src/matchers/dockerfile-curl-pipe-unverified.tsruns2,569 bytespackages/scanner/src/matchers/dockerfile-from-mutable-tag.tsruns1,968 bytespackages/scanner/src/matchers/dockerfile-run-as-root.tsruns2,663 bytespackages/scanner/src/matchers/dotnet-aspnet-controller.tsruns1,659 bytespackages/scanner/src/matchers/dotnet-azure-function.tsruns1,634 bytespackages/scanner/src/matchers/dotnet-minimal-api.tsruns1,539 bytespackages/scanner/src/matchers/dotnet-razor-pages.tsruns1,564 bytespackages/scanner/src/matchers/dotnet-sql-raw.tsruns3,487 bytespackages/scanner/src/matchers/drizzle-mass-assignment.tsruns3,445 bytespackages/scanner/src/matchers/drizzle-raw-sql.tsruns3,371 bytespackages/scanner/src/matchers/env-exposure.tsruns2,957 bytespackages/scanner/src/matchers/env-var-as-bool.tsruns1,753 bytespackages/scanner/src/matchers/erl-cowboy-handler.tsruns1,314 bytespackages/scanner/src/matchers/error-message-leak.tsruns2,712 bytespackages/scanner/src/matchers/event-handler-mismatch.tsruns3,408 bytespackages/scanner/src/matchers/ex-phoenix-controller.tsruns1,775 bytespackages/scanner/src/matchers/expensive-api-abuse.tsruns6,706 bytespackages/scanner/src/matchers/fs-write-symlink-boundary.tsruns4,296 bytespackages/scanner/src/matchers/gcp-cloud-function.tsruns1,844 bytespackages/scanner/src/matchers/git-provider-url-injection.tsruns1,525 bytespackages/scanner/src/matchers/github-workflow-security.tsruns4,480 bytespackages/scanner/src/matchers/go-buffalo-route.tsruns1,350 bytespackages/scanner/src/matchers/go-chi-route.tsruns1,610 bytespackages/scanner/src/matchers/go-cobra-command.tsruns1,576 bytespackages/scanner/src/matchers/go-command-injection.tsruns965 bytespackages/scanner/src/matchers/go-echo-route.tsruns1,464 bytespackages/scanner/src/matchers/go-embed-asset.tsruns2,092 bytespackages/scanner/src/matchers/go-fiber-route.tsruns1,478 bytespackages/scanner/src/matchers/go-gin-route.tsruns1,586 bytespackages/scanner/src/matchers/go-gorilla-route.tsruns1,430 bytespackages/scanner/src/matchers/go-http-handler.tsruns1,594 bytespackages/scanner/src/matchers/go-sql-raw.tsruns3,375 bytespackages/scanner/src/matchers/go-ssrf.tsruns1,475 bytespackages/scanner/src/matchers/iam-permissions.tsruns2,015 bytespackages/scanner/src/matchers/index.tsruns23,985 bytespackages/scanner/src/matchers/insecure-crypto.tsruns2,234 bytespackages/scanner/src/matchers/ios-url-scheme.tsruns1,952 bytespackages/scanner/src/matchers/js-astro-endpoint.tsruns1,582 bytespackages/scanner/src/matchers/js-bullmq-processor.tsruns1,425 bytespackages/scanner/src/matchers/js-bun-serve.tsruns1,279 bytespackages/scanner/src/matchers/js-deno-route.tsruns1,499 bytespackages/scanner/src/matchers/js-express-route.tsruns1,926 bytespackages/scanner/src/matchers/js-fastify-route.tsruns1,580 bytespackages/scanner/src/matchers/js-graphql-resolver.tsruns1,656 bytespackages/scanner/src/matchers/js-hapi-route.tsruns1,286 bytespackages/scanner/src/matchers/js-hono-route.tsruns1,352 bytespackages/scanner/src/matchers/js-koa-route.tsruns1,558 bytespackages/scanner/src/matchers/js-nestjs-controller.tsruns1,460 bytespackages/scanner/src/matchers/js-nextjs-catch-all-route-auth.tsruns2,625 bytespackages/scanner/src/matchers/js-nextjs-catchall-router.tsruns3,440 bytespackages/scanner/src/matchers/js-nextjs-edge-sandbox.tsruns3,544 bytespackages/scanner/src/matchers/js-nextjs-fw-server-action.tsruns3,536 bytespackages/scanner/src/matchers/js-nextjs-image-optimizer.tsruns3,603 bytespackages/scanner/src/matchers/js-nextjs-internal-header.tsruns3,266 bytespackages/scanner/src/matchers/js-nextjs-middleware-only-auth.tsruns2,846 bytespackages/scanner/src/matchers/js-nextjs-middleware.tsruns3,234 bytespackages/scanner/src/matchers/js-nextjs-page-data-fetch.tsruns2,218 bytespackages/scanner/src/matchers/js-nextjs-page-without-auth-fetch.tsruns2,452 bytespackages/scanner/src/matchers/js-nextjs-route-handlers.tsruns2,758 bytespackages/scanner/src/matchers/js-nextjs-server-action-no-auth.tsruns2,760 bytespackages/scanner/src/matchers/js-nextjs-server-action.tsruns2,584 bytespackages/scanner/src/matchers/js-nextjs-server-actions.tsruns2,934 bytespackages/scanner/src/matchers/js-nextjs-untrusted-fetch.tsruns3,245 bytespackages/scanner/src/matchers/js-nextjs-use-server-export.tsruns2,419 bytespackages/scanner/src/matchers/js-nosql-injection.tsruns3,538 bytespackages/scanner/src/matchers/js-nuxt-route.tsruns1,380 bytespackages/scanner/src/matchers/js-react-unsafe-json-in-html.tsruns3,067 bytespackages/scanner/src/matchers/js-remix-route.tsruns1,570 bytespackages/scanner/src/matchers/js-socketio-handler.tsruns1,532 bytespackages/scanner/src/matchers/js-solidstart-action.tsruns1,326 bytespackages/scanner/src/matchers/js-sql-raw.tsruns6,704 bytespackages/scanner/src/matchers/js-sveltekit-route.tsruns1,743 bytespackages/scanner/src/matchers/js-workers-fetch.tsruns1,723 bytespackages/scanner/src/matchers/jvm-jaxrs-resource.tsruns1,554 bytespackages/scanner/src/matchers/jvm-ktor-route.tsruns1,356 bytespackages/scanner/src/matchers/jvm-micronaut-controller.tsruns1,413 bytespackages/scanner/src/matchers/jvm-spring-controller.tsruns1,443 bytespackages/scanner/src/matchers/jvm-sql-raw.tsruns5,298 bytespackages/scanner/src/matchers/jwt-handling.tsruns2,508 bytespackages/scanner/src/matchers/k8s-secret-reference.tsruns3,913 bytespackages/scanner/src/matchers/k8s-secrets-init-container.tsruns3,172 bytespackages/scanner/src/matchers/lambda-aws-handler.tsruns2,025 bytespackages/scanner/src/matchers/lua-crypto-weakness.tsruns1,423 bytespackages/scanner/src/matchers/lua-ngx-exec.tsruns1,166 bytespackages/scanner/src/matchers/lua-regex-bypass.tsruns1,902 bytespackages/scanner/src/matchers/lua-shared-dict-poisoning.tsruns1,218 bytespackages/scanner/src/matchers/lua-string-concat-url.tsruns1,291 bytespackages/scanner/src/matchers/mcp-tool-handler.tsruns4,250 bytespackages/scanner/src/matchers/missing-auth.tsruns3,253 bytespackages/scanner/src/matchers/missing-await.tsruns2,611 bytespackages/scanner/src/matchers/non-atomic-operation.tsruns2,524 bytespackages/scanner/src/matchers/non-atomic-read-delete.tsruns3,495 bytespackages/scanner/src/matchers/oauth-flow.tsruns2,183 bytespackages/scanner/src/matchers/object-injection.tsruns1,635 bytespackages/scanner/src/matchers/open-redirect.tsruns1,590 bytespackages/scanner/src/matchers/path-traversal.tsruns2,037 bytespackages/scanner/src/matchers/php-cakephp-controller.tsruns1,611 bytespackages/scanner/src/matchers/php-codeigniter-controller.tsruns1,742 bytespackages/scanner/src/matchers/php-drupal-controller.tsruns1,697 bytespackages/scanner/src/matchers/php-laravel-route.tsruns2,771 bytespackages/scanner/src/matchers/php-magento-controller.tsruns1,810 bytespackages/scanner/src/matchers/php-slim-route.tsruns1,625 bytespackages/scanner/src/matchers/php-sql-raw.tsruns3,928 bytespackages/scanner/src/matchers/php-symfony-controller.tsruns1,728 bytespackages/scanner/src/matchers/php-wordpress-rest.tsruns1,980 bytespackages/scanner/src/matchers/php-yii-controller.tsruns1,829 bytespackages/scanner/src/matchers/postmessage-origin.tsruns1,951 bytespackages/scanner/src/matchers/prisma-raw-sql.tsruns3,098 bytespackages/scanner/src/matchers/process-env-access.tsruns1,652 bytespackages/scanner/src/matchers/prompt-leaks-system-prompt.tsruns4,215 bytespackages/scanner/src/matchers/proto-rpc-surface.tsruns3,615 bytespackages/scanner/src/matchers/public-endpoint.tsruns1,278 bytespackages/scanner/src/matchers/py-aiohttp-route.tsruns1,457 bytespackages/scanner/src/matchers/py-airflow-dag.tsruns1,697 bytespackages/scanner/src/matchers/py-bottle-route.tsruns1,131 bytespackages/scanner/src/matchers/py-celery-task.tsruns1,260 bytespackages/scanner/src/matchers/py-django-view.tsruns1,876 bytespackages/scanner/src/matchers/py-falcon-resource.tsruns1,424 bytespackages/scanner/src/matchers/py-fastapi-route.tsruns1,425 bytespackages/scanner/src/matchers/py-flask-route.tsruns1,351 bytespackages/scanner/src/matchers/py-nosql-injection.tsruns2,706 bytespackages/scanner/src/matchers/py-sanic-route.tsruns1,378 bytespackages/scanner/src/matchers/py-sql-raw.tsruns4,427 bytespackages/scanner/src/matchers/py-starlette-route.tsruns1,365 bytespackages/scanner/src/matchers/py-tornado-handler.tsruns1,369 bytespackages/scanner/src/matchers/rate-limit-bypass.tsruns2,974 bytespackages/scanner/src/matchers/rb-grape-endpoint.tsruns1,184 bytespackages/scanner/src/matchers/rb-hanami-action.tsruns1,185 bytespackages/scanner/src/matchers/rb-rails-controller.tsruns1,810 bytespackages/scanner/src/matchers/rb-roda-route.tsruns1,164 bytespackages/scanner/src/matchers/rb-sinatra-route.tsruns1,183 bytespackages/scanner/src/matchers/rb-sql-raw.tsruns3,038 bytespackages/scanner/src/matchers/rce.tsruns1,517 bytespackages/scanner/src/matchers/response-header-leak.tsruns1,687 bytespackages/scanner/src/matchers/rs-actix-route.tsruns1,416 bytespackages/scanner/src/matchers/rs-axum-route.tsruns1,711 bytespackages/scanner/src/matchers/rs-lambda-runtime.tsruns1,282 bytespackages/scanner/src/matchers/rs-poem-route.tsruns1,244 bytespackages/scanner/src/matchers/rs-rocket-route.tsruns1,270 bytespackages/scanner/src/matchers/rs-sql-raw.tsruns3,180 bytespackages/scanner/src/matchers/rs-tide-route.tsruns1,164 bytespackages/scanner/src/matchers/rs-tonic-grpc.tsruns1,425 bytespackages/scanner/src/matchers/rs-warp-filter.tsruns1,221 bytespackages/scanner/src/matchers/sandbox-runtime-script.tsruns4,625 bytespackages/scanner/src/matchers/secret-env-var.tsruns2,130 bytespackages/scanner/src/matchers/secret-in-fallback.tsruns1,769 bytespackages/scanner/src/matchers/secret-in-log.tsruns2,491 bytespackages/scanner/src/matchers/secrets-exposure.tsruns4,311 bytespackages/scanner/src/matchers/secrets-plaintext-exposure.tsruns3,775 bytespackages/scanner/src/matchers/security-behind-flag.tsruns2,650 bytespackages/scanner/src/matchers/sensitive-data-in-traces.tsruns3,352 bytespackages/scanner/src/matchers/service-entry-point.tsruns2,985 bytespackages/scanner/src/matchers/session-cookie-config.tsruns3,969 bytespackages/scanner/src/matchers/slack-signing-verification.tsruns4,614 bytespackages/scanner/src/matchers/snowflake-bigquery-sql.tsruns3,956 bytespackages/scanner/src/matchers/soql-injection.tsruns3,541 bytespackages/scanner/src/matchers/spread-operator-injection.tsruns1,509 bytespackages/scanner/src/matchers/sql-injection.tsruns2,922 bytespackages/scanner/src/matchers/ssrf.tsruns4,235 bytespackages/scanner/src/matchers/streaming-endpoint.tsruns3,188 bytespackages/scanner/src/matchers/swift-vapor-route.tsruns1,809 bytespackages/scanner/src/matchers/test-header-bypass.tsruns2,850 bytespackages/scanner/src/matchers/tf-encryption-missing.tsruns4,173 bytespackages/scanner/src/matchers/tf-iac-surface.tsruns4,917 bytespackages/scanner/src/matchers/tf-iam-wildcard.tsruns2,961 bytespackages/scanner/src/matchers/tf-module-unpinned.tsruns4,137 bytespackages/scanner/src/matchers/tf-public-ingress.tsruns4,616 bytespackages/scanner/src/matchers/tf-secret-in-data.tsruns3,261 bytespackages/scanner/src/matchers/trpc-public-procedure.tsruns3,203 bytespackages/scanner/src/matchers/unix-socket-listener.tsruns3,117 bytespackages/scanner/src/matchers/unsafe-deserialization.tsruns1,684 bytespackages/scanner/src/matchers/unsafe-redirect.tsruns2,825 bytespackages/scanner/src/matchers/untrusted-redirect-following.tsruns3,991 bytespackages/scanner/src/matchers/unverified-lookup.tsruns2,922 bytespackages/scanner/src/matchers/url-regex-validation.tsruns2,478 bytespackages/scanner/src/matchers/utils.tsruns1,042 bytespackages/scanner/src/matchers/webhook-handler.tsruns2,371 bytespackages/scanner/src/matchers/xss.tsruns1,507 bytespackages/scanner/src/matchers/zod-passthrough-mass-assignment.tsruns2,906 bytespackages/scanner/src/types.tsruns1,094 bytespackages/scanner/tsconfig.jsonasset137 bytespackages/scanner/vitest.config.tsruns162 bytespackages/website/.gitignoreasset523 bytespackages/website/README.mddoc1,450 bytespackages/website/app/api/search/route.tsruns255 bytespackages/website/app/docs/[...slug]/page.tsxruns2,231 bytespackages/website/app/docs/layout.tsxruns587 bytespackages/website/app/docs/page.tsxruns122 bytespackages/website/app/favicon.icoasset25,931 bytespackages/website/app/globals.cssasset605 bytespackages/website/app/layout.tsxruns1,272 bytespackages/website/app/page.tsxruns1,807 bytespackages/website/app/rss.xml/route.tsruns1,129 bytespackages/website/components/geistdocs/mdx-components.tsxruns224 bytespackages/website/components/geistdocs/provider.tsxruns400 bytespackages/website/components/run-command.tsxruns1,838 bytespackages/website/eslint.config.mjsruns483 bytespackages/website/lib/geistdocs/config.tsxruns1,881 bytespackages/website/lib/geistdocs/fonts.tsruns338 bytespackages/website/lib/geistdocs/source.tsruns249 bytespackages/website/next.config.tsruns934 bytespackages/website/package.jsonruns791 bytespackages/website/pnpm-lock.yamlasset407,082 bytespackages/website/pnpm-workspace.yamlasset475 bytespackages/website/postcss.config.mjsruns94 bytespackages/website/public/file.svgasset391 bytespackages/website/public/globe.svgasset1,035 bytespackages/website/public/next.svgasset1,375 bytespackages/website/public/vercel.svgasset128 bytespackages/website/public/window.svgasset385 bytespackages/website/source.config.tsruns570 bytespackages/website/tsconfig.jsonasset666 bytespnpm-lock.yamlasset505,930 bytespnpm-workspace.yamlasset27 bytesprompt-samples/01-empty-project.mddoc9,083 bytesprompt-samples/02-nextjs-tsx-batch.mddoc10,785 bytesprompt-samples/03-django-py-batch.mddoc10,274 bytesprompt-samples/04-polyglot-python-batch-filters-other-techs.mddoc10,236 bytesprompt-samples/05-polyglot-typescript-batch-filters-other-techs.mddoc11,418 bytesprompt-samples/06-polyglot-mixed-batch.mddoc12,065 bytesprompt-samples/07-overflow-fallback.mddoc10,866 bytesprompt-samples/08-with-info-and-append.mddoc10,782 bytesprompt-samples/09-laravel-php-batch.mddoc10,250 bytesprompt-samples/10-rails-rb-batch.mddoc10,494 bytesprompt-samples/11-go-multi-framework-batch.mddoc10,491 bytessamples/README.mddoc658 bytessamples/webapp/INFO.mddoc3,288 bytessamples/webapp/README.mddoc2,030 bytessamples/webapp/config.jsonasset629 bytessamples/webapp/deepsec.config.tsruns987 bytessamples/webapp/matchers/webapp-debug-flag.tsruns1,542 bytessamples/webapp/matchers/webapp-route-no-rate-limit.tsruns1,864 bytessamples/webapp/package.jsonruns212 bytestsconfig.base.jsonasset436 bytesvitest.workspace.tsruns111 bytes
Read SKILL.md
# /deepsec — scan this repository with deepsec
`deepsec` is an AI-powered vulnerability scanner.
- Modern AI models are great at security code review.
- Most review solutions only run on pull requests.
- That means most legacy code was never reviewed, and your code from 6
months ago was reviewed by older models.
- Instead deepsec does security review on ALL of your existing code using
scaled VM fanout.
- Vercel's deepsec is open source, runs in your own infrastructure, and
supports strong agent sandboxing.
A fast regex scan flags candidate files, then AI agents investigate each View the complete source on GitHubdeepsec-docs
When your agent uses it
Use deepsec (an AI-powered vulnerability scanner) — one-shot initialization, resumable setup, project/model credentials, scans, generated or hand-authored matchers, and plugins. Activates when the user asks how to initialize, scan, configure, resume, or extend deepsec.
What it loads into context
Frontmatter
66 tokensAlways available to the agent
SKILL.md
976 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Where the docs are
- How to answer common questions
- Agent-native initialization
Scripts executed separately
build.mjspackage.jsonsrc/__tests__/agent-config.test.tssrc/__tests__/agent-defaults.test.tssrc/__tests__/credential-brokering.test.tssrc/__tests__/ensure-connected-workspace.test.tssrc/__tests__/env-file.test.tssrc/__tests__/file-sources.test.tssrc/__tests__/formatters.test.tssrc/__tests__/merge-records.test.tssrc/__tests__/metrics.test.tssrc/__tests__/model-picker.test.tssrc/__tests__/model-route.test.tssrc/__tests__/network-policy.test.tssrc/__tests__/output-cap.test.tssrc/__tests__/pr-comment.test.tssrc/__tests__/preflight.test.tssrc/__tests__/resolve-agent-type.test.tssrc/__tests__/resolve-project-id.test.tssrc/__tests__/sandbox-tools.test.tssrc/__tests__/setup-coordinator.test.tssrc/__tests__/setup-coverage.test.tssrc/__tests__/setup-fingerprint.test.tssrc/__tests__/setup-generated-matchers.test.tssrc/__tests__/setup-install.test.tssrc/__tests__/setup-interaction.test.tssrc/__tests__/setup-lock.test.tssrc/__tests__/setup-options.test.tssrc/__tests__/setup-output.test.tssrc/__tests__/setup-persisted-route.test.tssrc/__tests__/setup-plan.test.tssrc/__tests__/setup-project-name.test.tssrc/__tests__/setup-protocol.test.tssrc/__tests__/setup-reporter.test.tssrc/__tests__/setup-repository-analysis.test.tssrc/__tests__/setup-state.test.tssrc/__tests__/setup-tui.test.tssrc/__tests__/setup-workspace-config.test.tssrc/__tests__/tarball.test.tssrc/__tests__/vercel-link.test.tssrc/agent-config.tssrc/agent-defaults.tssrc/atomic-file.tssrc/auth/ensure-connected-workspace.tssrc/auth/model-picker.tssrc/auth/model-route-prompt.tssrc/auth/model-route.tssrc/auth/vercel-link.tssrc/cli.tssrc/commands/enrich.tssrc/commands/export.tssrc/commands/init-project.tssrc/commands/init.tssrc/commands/metrics.tssrc/commands/process.tssrc/commands/report.tssrc/commands/revalidate.tssrc/commands/sandbox-all.tssrc/commands/sandbox-process.tssrc/commands/scan.tssrc/commands/setup.tssrc/commands/status.tssrc/commands/triage.tssrc/config.tssrc/data-commit.tssrc/env-file.tssrc/file-sources.tssrc/formatters.tssrc/load-config.tssrc/output-cap.tssrc/pr-comment.tssrc/preflight.tssrc/quota-message.tssrc/require-dir.tssrc/resolve-agent-type.tssrc/resolve-project-id.tssrc/sandbox/download.tssrc/sandbox/merge-records.tssrc/sandbox/orchestrator.tssrc/sandbox/partitioner.tssrc/sandbox/request-proxy.mjssrc/sandbox/setup.tssrc/sandbox/shutdown.tssrc/sandbox/state.tssrc/sandbox/types.tssrc/sandbox/upload.tssrc/setup/coordinator.tssrc/setup/coverage.tssrc/setup/fingerprint.tssrc/setup/generated-matchers.tssrc/setup/install.tssrc/setup/interaction.tssrc/setup/lock.tssrc/setup/options.tssrc/setup/output.tssrc/setup/persisted-route.tssrc/setup/plan.tssrc/setup/project-name.tssrc/setup/protocol.tssrc/setup/reporter.tssrc/setup/repository-analysis.tssrc/setup/state.tssrc/setup/status.tssrc/setup/tui.tsxsrc/setup/workspace-config.tssrc/version.tsvitest.config.ts
Files
.gitignoreasset161 bytesSKILL.mdcore3,872 bytesSKILL.mdcore3,872 bytesSKILL.mdcore3,872 bytesSKILL.mdcore3,872 bytesSKILL.mdcore3,872 bytesSKILL.mdcore3,872 bytesbuild.mjsruns4,363 bytespackage.jsonruns1,827 bytessrc/__tests__/agent-config.test.tsruns2,850 bytessrc/__tests__/agent-defaults.test.tsruns871 bytessrc/__tests__/credential-brokering.test.tsruns7,444 bytessrc/__tests__/ensure-connected-workspace.test.tsruns4,236 bytessrc/__tests__/env-file.test.tsruns1,209 bytessrc/__tests__/file-sources.test.tsruns6,037 bytessrc/__tests__/formatters.test.tsruns1,689 bytessrc/__tests__/merge-records.test.tsruns14,363 bytessrc/__tests__/metrics.test.tsruns2,188 bytessrc/__tests__/model-picker.test.tsruns4,403 bytessrc/__tests__/model-route.test.tsruns4,463 bytessrc/__tests__/network-policy.test.tsruns8,722 bytessrc/__tests__/output-cap.test.tsruns2,588 bytessrc/__tests__/pr-comment.test.tsruns4,568 bytessrc/__tests__/preflight.test.tsruns18,143 bytessrc/__tests__/resolve-agent-type.test.tsruns1,336 bytessrc/__tests__/resolve-project-id.test.tsruns1,593 bytessrc/__tests__/sandbox-tools.test.tsruns421 bytessrc/__tests__/setup-coordinator.test.tsruns17,025 bytessrc/__tests__/setup-coverage.test.tsruns10,675 bytessrc/__tests__/setup-fingerprint.test.tsruns1,813 bytessrc/__tests__/setup-generated-matchers.test.tsruns1,222 bytessrc/__tests__/setup-install.test.tsruns945 bytessrc/__tests__/setup-interaction.test.tsruns790 bytessrc/__tests__/setup-lock.test.tsruns1,013 bytessrc/__tests__/setup-options.test.tsruns2,010 bytessrc/__tests__/setup-output.test.tsruns1,354 bytessrc/__tests__/setup-persisted-route.test.tsruns3,859 bytessrc/__tests__/setup-plan.test.tsruns1,698 bytessrc/__tests__/setup-project-name.test.tsruns624 bytessrc/__tests__/setup-protocol.test.tsruns1,810 bytessrc/__tests__/setup-reporter.test.tsruns5,460 bytessrc/__tests__/setup-repository-analysis.test.tsruns2,421 bytessrc/__tests__/setup-state.test.tsruns1,474 bytessrc/__tests__/setup-tui.test.tsruns2,847 bytessrc/__tests__/setup-workspace-config.test.tsruns1,458 bytessrc/__tests__/tarball.test.tsruns12,417 bytessrc/__tests__/vercel-link.test.tsruns10,213 bytessrc/agent-config.tsruns3,357 bytessrc/agent-defaults.tsruns648 bytessrc/atomic-file.tsruns1,060 bytessrc/auth/ensure-connected-workspace.tsruns6,602 bytessrc/auth/model-picker.tsruns10,832 bytessrc/auth/model-route-prompt.tsruns1,718 bytessrc/auth/model-route.tsruns9,763 bytessrc/auth/vercel-link.tsruns17,936 bytessrc/cli.tsruns26,144 bytessrc/commands/enrich.tsruns1,502 bytessrc/commands/export.tsruns19,713 bytessrc/commands/init-project.tsruns11,311 bytessrc/commands/init.tsruns24,363 bytessrc/commands/metrics.tsruns17,060 bytessrc/commands/process.tsruns13,779 bytessrc/commands/report.tsruns7,578 bytessrc/commands/revalidate.tsruns5,953 bytessrc/commands/sandbox-all.tsruns10,077 bytessrc/commands/sandbox-process.tsruns7,904 bytessrc/commands/scan.tsruns13,056 bytessrc/commands/setup.tsruns5,820 bytessrc/commands/status.tsruns4,895 bytessrc/commands/triage.tsruns1,987 bytessrc/config.tsruns1,297 bytessrc/data-commit.tsruns5,953 bytessrc/env-file.tsruns2,373 bytessrc/file-sources.tsruns5,094 bytessrc/formatters.tsruns1,086 bytessrc/load-config.tsruns2,737 bytessrc/output-cap.tsruns2,673 bytessrc/pr-comment.tsruns4,650 bytessrc/preflight.tsruns15,608 bytessrc/quota-message.tsruns5,784 bytessrc/require-dir.tsruns836 bytessrc/resolve-agent-type.tsruns467 bytessrc/resolve-project-id.tsruns4,696 bytessrc/sandbox/download.tsruns13,774 bytessrc/sandbox/merge-records.tsruns11,494 bytessrc/sandbox/orchestrator.tsruns29,999 bytessrc/sandbox/partitioner.tsruns5,958 bytessrc/sandbox/request-proxy.mjsruns3,851 bytessrc/sandbox/setup.tsruns38,134 bytessrc/sandbox/shutdown.tsruns1,645 bytessrc/sandbox/state.tsruns2,175 bytessrc/sandbox/types.tsruns3,083 bytessrc/sandbox/upload.tsruns12,006 bytessrc/setup/coordinator.tsruns33,715 bytessrc/setup/coverage.tsruns20,052 bytessrc/setup/fingerprint.tsruns2,183 bytessrc/setup/generated-matchers.tsruns4,510 bytessrc/setup/install.tsruns5,791 bytessrc/setup/interaction.tsruns415 bytessrc/setup/lock.tsruns1,887 bytessrc/setup/options.tsruns1,810 bytessrc/setup/output.tsruns1,917 bytessrc/setup/persisted-route.tsruns1,765 bytessrc/setup/plan.tsruns6,053 bytessrc/setup/project-name.tsruns534 bytessrc/setup/protocol.tsruns5,382 bytessrc/setup/reporter.tsruns14,948 bytessrc/setup/repository-analysis.tsruns8,380 bytessrc/setup/state.tsruns4,888 bytessrc/setup/status.tsruns2,718 bytessrc/setup/tui.tsxruns10,652 bytessrc/setup/workspace-config.tsruns4,173 bytessrc/version.tsruns2,639 bytestsconfig.dts.jsonasset532 bytestsconfig.jsonasset159 bytesvitest.config.tsruns158 bytes
Read SKILL.md
# deepsec
`deepsec` is an AI-powered vulnerability scanner. The one-shot initializer
installs this skill at `.deepsec/node_modules/deepsec/SKILL.md`. From inside
the isolated workspace the same path is `node_modules/deepsec/SKILL.md`. In a
Deepsec source clone, use the repository's `docs/` directory instead.
When the user asks how to use, configure, or extend deepsec, read the
relevant doc before answering — the docs are the source of truth, not
your training data.
## Where the docs are
From the target repository, `.deepsec/node_modules/deepsec/dist/docs/`; fromView the complete source on GitHubSkills included
- deepsec
- deepsec-docs
Repository facts
- License
- Apache-2.0
- Created
- Apr 30, 2026
- Last pushed
- Nov 4, 2026
- Forks
- 515
- Open issues
- 28
- Project activity
- Active
Rank over the last 12 weeks
Now #174 · best #147 · down 12 in 30 days
- #171 on Oct 30
- #172 from Oct 31 to Nov 2
- #173 on Nov 3
- #172 on Nov 4
- #173 on Nov 5
- #174 since Nov 6
58 earlier periods
- #157 on Aug 2
- #158 on Aug 7
- #159 on Aug 8
- #158 on Aug 9
- #161 on Aug 10
- #162 on Aug 11
- #161 on Aug 12
- #153 on Aug 13
- #149 on Aug 14
- #148 from Aug 15 to Aug 16
- #149 on Aug 17
- #150 from Aug 18 to Aug 19
- #149 on Aug 20
- #148 on Aug 21
- #147 on Aug 22
- #149 on Aug 23
- #150 from Aug 24 to Aug 29
- #149 from Aug 30 to Aug 31
- #152 on Sep 1
- #150 on Sep 2
- #152 on Sep 3
- #150 on Sep 4
- #152 on Sep 5
- #151 on Sep 6
- #153 from Sep 7 to Sep 9
- #156 on Sep 10
- #154 on Sep 11
- #156 from Sep 12 to Sep 13
- #157 from Sep 14 to Sep 15
- #156 on Sep 16
- #158 on Sep 17
- #159 on Sep 18
- #157 on Sep 19
- #159 from Sep 20 to Sep 21
- #158 on Sep 22
- #159 on Sep 23
- #158 from Sep 24 to Sep 25
- #159 from Sep 26 to Sep 27
- #161 from Sep 28 to Sep 29
- #159 on Sep 30
- #161 from Oct 1 to Oct 2
- #159 from Oct 3 to Oct 4
- #160 from Oct 5 to Oct 6
- #162 on Oct 7
- #161 on Oct 8
- #162 on Oct 9
- #161 on Oct 10
- #162 from Oct 11 to Oct 12
- #163 from Oct 13 to Oct 14
- #162 on Oct 15
- #160 on Oct 16
- #164 on Oct 17
- #166 on Oct 18
- #165 on Oct 19
- #166 from Oct 20 to Oct 23
- #167 on Oct 24
- #169 on Oct 25
- #170 from Oct 28 to Oct 29
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 7 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpnpm-lock.yaml:10648Analysis incomplete: regex work limit reachedpackages/deepsec/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/deepsec/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/deepsec/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/deepsec/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpackages/deepsec/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 64 dangerous shell commandsin 22 files: deepsec/src/sandbox/setup.ts:532 .deepsec/data/deepsec/files/packages/scanner/src/matchers/agent-tool-definition.ts.json:74 .deepsec/data/deepsec/files/packages/scanner/src/matchers/rce.ts.json:34 and 19 more
- 860 network referencesin 106 files: .deepsec/data/deepsec/files/packages/scanner/src/matchers/untrusted-redirect-following.ts.json:25 deepsec/src/__tests__/network-policy.test.ts:44 packages/processor/src/__tests__/shared.test.ts:65 and 103 more
- No hidden or obfuscated text
- No instruction overrides
- 413 executable scriptsin 413 files: .deepsec/deepsec.config.ts:1 .deepsec/matchers/archive-extraction-untrusted.ts:1 .deepsec/package.json:1 and 410 more
- 628 references to secretsin 79 files: deepsec/src/__tests__/preflight.test.ts:16 deepsec/src/__tests__/credential-brokering.test.ts:5 .deepsec/data/deepsec/files/packages/deepsec/src/preflight.ts.json:16 and 76 more
- No requests to vote in Hot
Show all 1,965 signals by file
.deepsec/README.md
.deepsec/data/deepsec/INFO.md
.deepsec/data/deepsec/files/.env.local.json
- Access to secretsline 11
[Credential-related source omitted]
.deepsec/data/deepsec/files/.github/workflows/deepsec.yml.json
.deepsec/data/deepsec/files/.github/workflows/e2e-live-sandbox.yml.json
- Access to secretsline 12
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/core/src/run.ts.json
- Network accessline 25
43 ], "snippet": " // Convert SSH to HTTPS\n const https = remote.replace(/^git@github\\.com:/, \"https://github.com/\").replace(/\\.git$/, \"\");\n if (https.includes(\"github.com\")) {\n return `${https}/blob/${b - Network accessline 26
], "snippet": " // Convert SSH to HTTPS\n const https = remote.replace(/^git@github\\.com:/, \"https://github.com/\").replace(/\\.git$/, \"\");\n if (https.includes(\"github.com\")) {\n return `${https}/blob/${branch}`;\ - Network accessline 27
"snippet": " // Convert SSH to HTTPS\n const https = remote.replace(/^git@github\\.com:/, \"https://github.com/\").replace(/\\.git$/, \"\");\n if (https.includes(\"github.com\")) {\n return `${https}/blob/${branch}`;\n }",
.deepsec/data/deepsec/files/packages/deepsec/src/commands/export.ts.json
- Network accessline 28
158 ], "snippet": " ...owners.oncall.slice(0, 3).map((o) => {\n const gh = o.github_username\n ? ` • [@${o.github_username}](https://github.com/${o.github_username})`\n : \"\";\n re - Network accessline 29
], "snippet": " ...owners.oncall.slice(0, 3).map((o) => {\n const gh = o.github_username\n ? ` • [@${o.github_username}](https://github.com/${o.github_username})`\n : \"\";\n return `- ${ - Network accessline 30
"snippet": " ...owners.oncall.slice(0, 3).map((o) => {\n const gh = o.github_username\n ? ` • [@${o.github_username}](https://github.com/${o.github_username})`\n : \"\";\n return `- ${o.name} < - Network accessline 65
159 ], "snippet": " ...owners.oncall.slice(0, 3).map((o) => {\n const gh = o.github_username\n ? ` • [@${o.github_username}](https://github.com/${o.github_username})`\n : \"\";\n re - Network accessline 66
], "snippet": " ...owners.oncall.slice(0, 3).map((o) => {\n const gh = o.github_username\n ? ` • [@${o.github_username}](https://github.com/${o.github_username})`\n : \"\";\n return `- ${ - Network accessline 67
"snippet": " ...owners.oncall.slice(0, 3).map((o) => {\n const gh = o.github_username\n ? ` • [@${o.github_username}](https://github.com/${o.github_username})`\n : \"\";\n return `- ${o.name} <
.deepsec/data/deepsec/files/packages/deepsec/src/data-commit.ts.json
- Network accessline 40
"vulnSlug": "rce", "title": "Shell command injection via JSON.stringify in git commit message", "description": "Line 31 builds a shell command string with `git commit -m ${JSON.stringify(message)}` and passes it to execSync, whi - Network accessline 41
"title": "Shell command injection via JSON.stringify in git commit message", "description": "Line 31 builds a shell command string with `git commit -m ${JSON.stringify(message)}` and passes it to execSync, which spawns a shell. JSON.s - Dangerous shell operationline 42
"description": "Line 31 builds a shell command string with `git commit -m ${JSON.stringify(message)}` and passes it to execSync, which spawns a shell. JSON.stringify only escapes `\"`, `\\`, and control characters \u2014 it does NOT escape - Network accessline 42
"description": "Line 31 builds a shell command string with `git commit -m ${JSON.stringify(message)}` and passes it to execSync, which spawns a shell. JSON.stringify only escapes `\"`, `\\`, and control characters \u2014 it does NOT escape - Network accessline 58
"vulnSlug": "rce", "title": "Shell command injection via DEEPSEC_DATA_BRANCH environment variable", "description": "Lines 41 and 47 interpolate the `DATA_BRANCH` constant \u2014 read from `process.env.DEEPSEC_DATA_BRANCH` at mod - Network accessline 59
"title": "Shell command injection via DEEPSEC_DATA_BRANCH environment variable", "description": "Lines 41 and 47 interpolate the `DATA_BRANCH` constant \u2014 read from `process.env.DEEPSEC_DATA_BRANCH` at module load (line 5) \u2014 - Dangerous shell operationline 60
"description": "Lines 41 and 47 interpolate the `DATA_BRANCH` constant \u2014 read from `process.env.DEEPSEC_DATA_BRANCH` at module load (line 5) \u2014 directly into shell command strings: `git pull --rebase origin ${DATA_BRANCH}` and `git - Network accessline 60
"description": "Lines 41 and 47 interpolate the `DATA_BRANCH` constant \u2014 read from `process.env.DEEPSEC_DATA_BRANCH` at module load (line 5) \u2014 directly into shell command strings: `git pull --rebase origin ${DATA_BRANCH}` and `git - Network accessline 68
"revalidation": { "verdict": "fixed", "reasoning": "The current code reads DEEPSEC_DATA_BRANCH into RAW_BRANCH and validates it against /^[A-Za-z0-9._/-]+$/ before assigning DATA_BRANCH. The git pull and push operations are - Network accessline 69
"verdict": "fixed", "reasoning": "The current code reads DEEPSEC_DATA_BRANCH into RAW_BRANCH and validates it against /^[A-Za-z0-9._/-]+$/ before assigning DATA_BRANCH. The git pull and push operations are performed with execFileSyn - Network accessline 70
"reasoning": "The current code reads DEEPSEC_DATA_BRANCH into RAW_BRANCH and validates it against /^[A-Za-z0-9._/-]+$/ before assigning DATA_BRANCH. The git pull and push operations are performed with execFileSync argv arrays: [\"pull\", \"
.deepsec/data/deepsec/files/packages/deepsec/src/preflight.ts.json
- Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 128
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Access to secretsline 136
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Access to secretsline 144
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 153
[Credential-related source omitted] - Access to secretsline 160
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted] - Access to secretsline 200
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 208
[Credential-related source omitted] - Access to secretsline 209
[Credential-related source omitted] - Access to secretsline 216
[Credential-related source omitted] - Access to secretsline 217
[Credential-related source omitted] - Access to secretsline 224
[Credential-related source omitted] - Access to secretsline 225
[Credential-related source omitted] - Access to secretsline 232
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/download.ts.json
- Access to secretsline 62
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/request-proxy.mjs.json
- Network accessline 10
117 ], "snippet": "//\n// The Claude Agent SDK / Codex CLI talks to us via ANTHROPIC_BASE_URL or\n// OPENAI_BASE_URL set to http://127.0.0.1:PROXY_PORT (or .../v1 for OpenAI).\n//\n// Env:", - Network accessline 11
], "snippet": "//\n// The Claude Agent SDK / Codex CLI talks to us via ANTHROPIC_BASE_URL or\n// OPENAI_BASE_URL set to http://127.0.0.1:PROXY_PORT (or .../v1 for OpenAI).\n//\n// Env:", "matchedPattern": "\\b(?:169\\.254\\.169\ - Network accessline 12
"snippet": "//\n// The Claude Agent SDK / Codex CLI talks to us via ANTHROPIC_BASE_URL or\n// OPENAI_BASE_URL set to http://127.0.0.1:PROXY_PORT (or .../v1 for OpenAI).\n//\n// Env:", - Network accessline 18
81 ], "snippet": " const url = UPSTREAM + req.url;\n const up = await fetch(url, {\n method: req.method,\n headers,", - Network accessline 19
], "snippet": " const url = UPSTREAM + req.url;\n const up = await fetch(url, {\n method: req.method,\n headers,", "matchedPattern": "fetch(url) — default redirect: follow + caller-style URL" - Network accessline 20
"snippet": " const url = UPSTREAM + req.url;\n const up = await fetch(url, {\n method: req.method,\n headers,", - Network accessline 21
"matchedPattern": "fetch(url) — default redirect: follow + caller-style URL"
.deepsec/data/deepsec/files/packages/deepsec/src/sandbox/setup.ts.json
- Access to secretsline 10
[Credential-related source omitted] - Network accessline 36
489 ], "snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub. - Network accessline 37
], "snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm - Dangerous shell operationline 38
"snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm -rf /tmp - Network accessline 38
"snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm -rf /tmp - Network accessline 45
338 ], "snippet": "\nconst PROXY_PORT = 8787;\nconst PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`;\n// Path differs by upload mode (see DeepsecMode):\n// dev — uploaded source workspace, proxy lives at its source locatio - Network accessline 46
], "snippet": "\nconst PROXY_PORT = 8787;\nconst PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`;\n// Path differs by upload mode (see DeepsecMode):\n// dev — uploaded source workspace, proxy lives at its source location", - Network accessline 47
"snippet": "\nconst PROXY_PORT = 8787;\nconst PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`;\n// Path differs by upload mode (see DeepsecMode):\n// dev — uploaded source workspace, proxy lives at its source location", - Network accessline 73
560 ], "snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub. - Network accessline 74
], "snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm - Dangerous shell operationline 75
"snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm -rf /tmp - Network accessline 75
"snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm -rf /tmp - Access to secretsline 84
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Network accessline 107
409 ], "snippet": "\nconst PROXY_PORT = 8787;\nconst PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`;\n// Path differs by upload mode (see DeepsecMode):\n// dev — uploaded source workspace, proxy lives at its source locatio - Network accessline 108
], "snippet": "\nconst PROXY_PORT = 8787;\nconst PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`;\n// Path differs by upload mode (see DeepsecMode):\n// dev — uploaded source workspace, proxy lives at its source location", - Network accessline 109
"snippet": "\nconst PROXY_PORT = 8787;\nconst PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`;\n// Path differs by upload mode (see DeepsecMode):\n// dev — uploaded source workspace, proxy lives at its source location", - Network accessline 135
583 ], "snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub. - Network accessline 136
], "snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm - Dangerous shell operationline 137
"snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm -rf /tmp - Network accessline 137
"snippet": " esac\n local rel=\"14.1.1\"\n local url=\"https://github.com/BurntSushi/ripgrep/releases/download/\\${rel}/ripgrep-\\${rel}-\\${arch}.tar.gz\"\n log \"Downloading ripgrep \\${rel} (\\${arch}) from GitHub...\"\n rm -rf /tmp - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/processor/src/agents/codex-sdk.ts.json
- Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Access to secretsline 307
[Credential-related source omitted] - Access to secretsline 315
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 357
[Credential-related source omitted] - Access to secretsline 373
[Credential-related source omitted] - Access to secretsline 493
[Credential-related source omitted] - Access to secretsline 494
[Credential-related source omitted] - Access to secretsline 509
[Credential-related source omitted] - Access to secretsline 517
[Credential-related source omitted] - Access to secretsline 518
[Credential-related source omitted] - Access to secretsline 546
[Credential-related source omitted] - Access to secretsline 565
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/processor/src/agents/shared.ts.json
- Network accessline 120
"vulnSlug": "rce", "title": "Command injection via file.filePath in revalidation git log", "description": "`buildRevalidatePrompt` runs ``execSync(`git log --oneline --since=\"3 months ago\" -n 10 -- \"${file.filePath}\"`, { cwd - Network accessline 121
"title": "Command injection via file.filePath in revalidation git log", "description": "`buildRevalidatePrompt` runs ``execSync(`git log --oneline --since=\"3 months ago\" -n 10 -- \"${file.filePath}\"`, { cwd: projectRoot, … })`` to - Network accessline 122
"description": "`buildRevalidatePrompt` runs ``execSync(`git log --oneline --since=\"3 months ago\" -n 10 -- \"${file.filePath}\"`, { cwd: projectRoot, … })`` to gather git history for the prompt. `file.filePath` comes from a `FileRecord`,
.deepsec/data/deepsec/files/packages/processor/src/enrich.ts.json
- Network accessline 18
39 ], "snippet": " // HTTPS: https://github.com/owner/repo.git\n const httpsMatch = url.match(/github\\.com\\/(.+?)(?:\\.git)?$/);\n if (httpsMatch) return httpsMatch[1];\n", - Network accessline 19
], "snippet": " // HTTPS: https://github.com/owner/repo.git\n const httpsMatch = url.match(/github\\.com\\/(.+?)(?:\\.git)?$/);\n if (httpsMatch) return httpsMatch[1];\n", "matchedPattern": "URL validation regex with gr - Network accessline 20
"snippet": " // HTTPS: https://github.com/owner/repo.git\n const httpsMatch = url.match(/github\\.com\\/(.+?)(?:\\.git)?$/);\n if (httpsMatch) return httpsMatch[1];\n",
.deepsec/data/deepsec/files/packages/processor/src/index.ts.json
- Access to secretsline 102
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/agent-tool-definition.ts.json
- Dangerous shell operationline 74
"snippet": " `const t = createTool({ name: \"x\", execute: async () => ({}) });`,\n `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs - Network accessline 80
26 ], "snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n - Network accessline 81
], "snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await - Dangerous shell operationline 82
"snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url - Network accessline 82
"snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url - Dangerous shell operationline 90
"snippet": " `const t = createTool({ name: \"x\", execute: async () => ({}) });`,\n `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs - Dangerous shell operationline 115
"snippet": " `const myTool = tool({\\n description: \"do thing\",\\n parameters: z.object({}),\\n execute: async () => ({}),\\n});`,\n `const t = createTool({ name: \"x\", execute: async () => ({}) });`,\n `const t = defineTool( - Dangerous shell operationline 123
"snippet": " `const t = createTool({ name: \"x\", execute: async () => ({}) });`,\n `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs - Network accessline 137
25 ], "snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n - Network accessline 138
], "snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await - Dangerous shell operationline 139
"snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url - Network accessline 139
"snippet": " `const t = defineTool({ name: \"x\" });`,\n `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url - Network accessline 153
26 ], "snippet": " `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } - Network accessline 154
], "snippet": " `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"s - Dangerous shell operationline 155
"snippet": " `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\"; - Network accessline 155
"snippet": " `import { exec } from \"child_process\";\\nexec(userInput);`,\n `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\"; - Network accessline 161
27 ], "snippet": " `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { - Network accessline 162
], "snippet": " `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTo - Dangerous shell operationline 163
"snippet": " `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from - Network accessline 163
"snippet": " `eval(userInput);`,\n `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from - Network accessline 177
28 ], "snippet": " `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"lang - Network accessline 178
], "snippet": " `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/too - Network accessline 179
"snippet": " `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/tools\";\\nc - Network accessline 193
29 ], "snippet": " `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/tools\";\\nconst t = new DynamicTool({ name: \"x\" });`,\n ],\ - Network accessline 194
], "snippet": " `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/tools\";\\nconst t = new DynamicTool({ name: \"x\" });`,\n ],\n match( - Network accessline 195
"snippet": " `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/tools\";\\nconst t = new DynamicTool({ name: \"x\" });`,\n ],\n match(content, - Network accessline 233
28 ], "snippet": " `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"lang - Network accessline 234
], "snippet": " `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/too - Network accessline 235
"snippet": " `import fs from \"fs\";\\nfs.writeFile(path, data, () => {});`,\n `await fetch(url);`,\n `import { sandbox } from \"sandbox\";\\nawait sandbox.runCode(code);`,\n `import { DynamicTool } from \"langchain/tools\";\\nc - Network accessline 236
"matchedPattern": "fetch(url) — default redirect: follow + caller-style URL"
.deepsec/data/deepsec/files/packages/scanner/src/matchers/cron-secret-check.ts.json
- Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/dockerfile-curl-pipe-unverified.ts.json
- Network accessline 8
13 ], "snippet": " noiseTier: \"precise\" as const,\n slug: \"dockerfile-curl-pipe-unverified\",\n description: \"RUN curl|wget piped to shell/tar without checksum verification\",\n filePatterns: [\"**/Dockerfile\", \"**/Doc - Network accessline 9
], "snippet": " noiseTier: \"precise\" as const,\n slug: \"dockerfile-curl-pipe-unverified\",\n description: \"RUN curl|wget piped to shell/tar without checksum verification\",\n filePatterns: [\"**/Dockerfile\", \"**/Dockerfile.* - Network accessline 10
"snippet": " noiseTier: \"precise\" as const,\n slug: \"dockerfile-curl-pipe-unverified\",\n description: \"RUN curl|wget piped to shell/tar without checksum verification\",\n filePatterns: [\"**/Dockerfile\", \"**/Dockerfile.*\", \"**/
.deepsec/data/deepsec/files/packages/scanner/src/matchers/env-exposure.ts.json
- Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 138
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Access to secretsline 183
[Credential-related source omitted] - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 199
[Credential-related source omitted] - Access to secretsline 207
[Credential-related source omitted] - Access to secretsline 208
[Credential-related source omitted] - Access to secretsline 215
[Credential-related source omitted] - Access to secretsline 216
[Credential-related source omitted] - Access to secretsline 223
[Credential-related source omitted] - Access to secretsline 224
[Credential-related source omitted] - Access to secretsline 231
[Credential-related source omitted] - Access to secretsline 232
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/env-var-as-bool.ts.json
- Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 141
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Access to secretsline 158
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/expensive-api-abuse.ts.json
- Network accessline 96
71 ], "snippet": " return anthropic.completions.create({ model: \"claude\", prompt: \"x\" });\n}`,\n `export async function POST() {\n await fetch(\"https://ai-gateway.vercel.sh/v1/chat\", { method: \"POST\" });\n return n - Network accessline 97
], "snippet": " return anthropic.completions.create({ model: \"claude\", prompt: \"x\" });\n}`,\n `export async function POST() {\n await fetch(\"https://ai-gateway.vercel.sh/v1/chat\", { method: \"POST\" });\n return new Respon - Network accessline 98
"snippet": " return anthropic.completions.create({ model: \"claude\", prompt: \"x\" });\n}`,\n `export async function POST() {\n await fetch(\"https://ai-gateway.vercel.sh/v1/chat\", { method: \"POST\" });\n return new Response(\"ok\" - Network accessline 104
75 ], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/chat/completions\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 105
], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/chat/completions\", { method: \"POST\" });\n return new Response(\"ok\");", "matchedPattern": "H - Network accessline 106
"snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/chat/completions\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 112
79 ], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/completions\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 113
], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/completions\", { method: \"POST\" });\n return new Response(\"ok\");", "matchedPattern": "HTTP e - Network accessline 114
"snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/completions\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 120
83 ], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/embeddings\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 121
], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/embeddings\", { method: \"POST\" });\n return new Response(\"ok\");", "matchedPattern": "HTTP en - Network accessline 122
"snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/embeddings\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 128
87 ], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/images/generations\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 129
], "snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/images/generations\", { method: \"POST\" });\n return new Response(\"ok\");", "matchedPattern": - Network accessline 130
"snippet": " return new Response(\"ok\");\n}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/images/generations\", { method: \"POST\" });\n return new Response(\"ok\");", - Network accessline 240
72 ], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://ai-gateway.vercel.sh/v1/chat\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 241
], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://ai-gateway.vercel.sh/v1/chat\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", "matchedPattern": "Expensive API call: Vercel AI Gate - Network accessline 242
"snippet": "}`,\n `export async function POST() {\n await fetch(\"https://ai-gateway.vercel.sh/v1/chat\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 248
76 ], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/chat/completions\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 249
], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/chat/completions\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", "matchedPattern": "Expensive API call: Chat com - Network accessline 250
"snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/chat/completions\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 256
80 ], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/completions\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 257
], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/completions\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", "matchedPattern": "Expensive API call: Completions A - Network accessline 258
"snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/completions\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 264
84 ], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/embeddings\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 265
], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/embeddings\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", "matchedPattern": "Expensive API call: Embeddings API - Network accessline 266
"snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/embeddings\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 272
88 ], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/images/generations\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", - Network accessline 273
], "snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/images/generations\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,", "matchedPattern": "Expensive API call: Image - Network accessline 274
"snippet": "}`,\n `export async function POST() {\n await fetch(\"https://api.openai.com/v1/images/generations\", { method: \"POST\" });\n return new Response(\"ok\");\n}`,",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/git-provider-url-injection.ts.json
- Network accessline 25
12 ], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n - Network accessline 26
], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `cons - Network accessline 27
"snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `const link = - Network accessline 35
13 ], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n - Network accessline 36
], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `cons - Network accessline 37
"snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `const link = - Network accessline 43
14 ], "snippet": " `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `const link = \\`https://github.com/\\${user}/\\${repo}/commits\\`;`,\n `const url = \\`https://gitlab.com/api/v4/projects/\\${id} - Network accessline 44
], "snippet": " `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `const link = \\`https://github.com/\\${user}/\\${repo}/commits\\`;`,\n `const url = \\`https://gitlab.com/api/v4/projects/\\${id}\\`;`,\n - Network accessline 45
"snippet": " `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `const link = \\`https://github.com/\\${user}/\\${repo}/commits\\`;`,\n `const url = \\`https://gitlab.com/api/v4/projects/\\${id}\\`;`,\n `const - Network accessline 51
15 ], "snippet": " `const link = \\`https://github.com/\\${user}/\\${repo}/commits\\`;`,\n `const url = \\`https://gitlab.com/api/v4/projects/\\${id}\\`;`,\n `const url = \\`https://bitbucket.org/api/2.0/repositories/\\ - Network accessline 52
], "snippet": " `const link = \\`https://github.com/\\${user}/\\${repo}/commits\\`;`,\n `const url = \\`https://gitlab.com/api/v4/projects/\\${id}\\`;`,\n `const url = \\`https://bitbucket.org/api/2.0/repositories/\\${slug}\\ - Network accessline 53
"snippet": " `const link = \\`https://github.com/\\${user}/\\${repo}/commits\\`;`,\n `const url = \\`https://gitlab.com/api/v4/projects/\\${id}\\`;`,\n `const url = \\`https://bitbucket.org/api/2.0/repositories/\\${slug}\\`;`,\n - Network accessline 63
16 ], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n - Network accessline 64
], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `cons - Network accessline 65
"snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `const url = \\`https://api.github.com/repos/\\${owner}/\\${repo}\\`;`,\n `await fetch(\\`https://api.github.com/orgs/\\${org}/members\\`);`,\n `const link =
.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-deno-route.ts.json
- Network accessline 8
15 ], "snippet": " `router.get(\"/users\", (ctx) => {})`,\n `router.post('/api/users', createUser)`,\n `router.use(authMiddleware)`,\n `router.delete(\"/u/:id\", removeUser)`,\n `import { Application, Router } fro - Network accessline 9
], "snippet": " `router.get(\"/users\", (ctx) => {})`,\n `router.post('/api/users', createUser)`,\n `router.use(authMiddleware)`,\n `router.delete(\"/u/:id\", removeUser)`,\n `import { Application, Router } from \"https - Network accessline 10
"snippet": " `router.get(\"/users\", (ctx) => {})`,\n `router.post('/api/users', createUser)`,\n `router.use(authMiddleware)`,\n `router.delete(\"/u/:id\", removeUser)`,\n `import { Application, Router } from \"https://deno.l
.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-catchall-router.ts.json
- Network accessline 16
23 ], "snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono - Network accessline 17
], "snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexp - Network accessline 18
"snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const - Network accessline 24
24 ], "snippet": " examples: [\n `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app - Network accessline 25
], "snippet": " examples: [\n `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(re - Network accessline 26
"snippet": " examples: [\n `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\n - Network accessline 32
25 ], "snippet": " `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\ - Network accessline 33
], "snippet": " `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\n `imp - Network accessline 34
"snippet": " `import { Elysia } from 'elysia';\\nconst app = new Elysia();\\nexport const GET = app.handle;`,\n `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\n `import expre - Network accessline 40
26 ], "snippet": " `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\n `import express from 'express';\\nconst app = express();\\nexport const POST = (req) => app(req); - Network accessline 41
], "snippet": " `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\n `import express from 'express';\\nconst app = express();\\nexport const POST = (req) => app(req);`,\n ` - Network accessline 42
"snippet": " `import { Hono } from 'hono';\\nconst app = new Hono();\\nexport const GET = (req) => app.fetch(req);`,\n `import express from 'express';\\nconst app = express();\\nexport const POST = (req) => app(req);`,\n `import {
.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-edge-sandbox.ts.json
- Dangerous shell operationline 10
"snippet": " examples: [\n `const fn = new Function('a', 'return a + 1');`,\n `const result = eval(userCode);`,\n `await context.evaluate(moduleSource);`,\n `const script = new vm.Script(code);`,", - Dangerous shell operationline 18
"snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `const fn = new Function('a', 'return a + 1');`,\n `const result = eval(userCode);`,\n `await context.evaluate(moduleSource);`,",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-page-data-fetch.ts.json
- Network accessline 8
12 ], "snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return - Network accessline 9
], "snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n} - Network accessline 10
"snippet": " requires: { tech: [\"nextjs\"] },\n examples: [\n `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n ` - Network accessline 16
13 ], "snippet": " examples: [\n `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n `export default asyn - Network accessline 17
], "snippet": " examples: [\n `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n `export default async functio - Network accessline 18
"snippet": " examples: [\n `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n `export default async function Page({ - Network accessline 24
14 ], "snippet": " `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n `export default async function Page - Network accessline 25
], "snippet": " `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n `export default async function Page({ params - Network accessline 26
"snippet": " `export default async function Page({ searchParams }) {\\n const id = searchParams.get('id');\\n const data = await fetch('/api/x?id=' + id);\\n return null\\n}`,\n `export default async function Page({ params }) {\\n
.deepsec/data/deepsec/files/packages/scanner/src/matchers/js-nextjs-untrusted-fetch.ts.json
- Network accessline 8
23 ], "snippet": " `const url = req.url;\\nconst res = await fetch(url);`,\n `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchPa - Network accessline 9
], "snippet": " `const url = req.url;\\nconst res = await fetch(url);`,\n `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchParams.get( - Network accessline 10
"snippet": " `const url = req.url;\\nconst res = await fetch(url);`,\n `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href')); - Network accessline 25
48 ], "snippet": " `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href'));`,\n `const upstream = req.query.upstream;\\nawait globalThis.fetch(upstream);`,\n `const path = request.nextUrl.searchParams.get - Network accessline 26
], "snippet": " `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href'));`,\n `const upstream = req.query.upstream;\\nawait globalThis.fetch(upstream);`,\n `const path = request.nextUrl.searchParams.get('path'); - Network accessline 27
"snippet": " `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href'));`,\n `const upstream = req.query.upstream;\\nawait globalThis.fetch(upstream);`,\n `const path = request.nextUrl.searchParams.get('path');\\nconst - Network accessline 33
23 ], "snippet": " `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href'));`,\n `const upstream = req.query.upstrea - Network accessline 34
], "snippet": " `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href'));`,\n `const upstream = req.query.upstream;\\nawai - Network accessline 35
"snippet": " `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchParams.get('href'));`,\n `const upstream = req.query.upstream;\\nawait globalT - Network accessline 41
21 ], "snippet": " examples: [\n `const url = req.url;\\nconst res = await fetch(url);`,\n `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait f - Network accessline 42
], "snippet": " examples: [\n `const url = req.url;\\nconst res = await fetch(url);`,\n `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.se - Network accessline 43
"snippet": " examples: [\n `const url = req.url;\\nconst res = await fetch(url);`,\n `const target = request.headers.get('x-target');\\nconst data = await fetch(target);`,\n `const u = new URL(req.url);\\nawait fetch(u.searchParam - Network accessline 44
"matchedPattern": "fetch(url) — default redirect: follow + caller-style URL"
.deepsec/data/deepsec/files/packages/scanner/src/matchers/jvm-sql-raw.ts.json
- Dangerous shell operationline 11
"snippet": " `jdbcTemplate.update(\"UPDATE users SET role = '\" + role + \"' WHERE id = \" + id)`,\n `@Select(\"SELECT * FROM users WHERE id = \\${id}\")`,\n `val rows = exec(\"SELECT * FROM users WHERE name = '\\${name}'\")`,\n - Dangerous shell operationline 77
"snippet": " `em.createQuery(\"FROM User u WHERE u.name = '\" + name + \"'\")`,\n `session.createSQLQuery(\"SELECT * FROM x WHERE col = '\" + col + \"'\")`,\n `jdbcTemplate.query(\"SELECT * FROM users WHERE id = \" + id, mapper)`,\ - Dangerous shell operationline 85
"snippet": " `session.createSQLQuery(\"SELECT * FROM x WHERE col = '\" + col + \"'\")`,\n `jdbcTemplate.query(\"SELECT * FROM users WHERE id = \" + id, mapper)`,\n `jdbcTemplate.update(\"UPDATE users SET role = '\" + role + \"' WHE
.deepsec/data/deepsec/files/packages/scanner/src/matchers/jwt-handling.ts.json
.deepsec/data/deepsec/files/packages/scanner/src/matchers/lua-ngx-exec.ts.json
- Network accessline 17
15 ], "snippet": " filePatterns: [\"**/*.lua\"],\n examples: [\n `ngx.exec(\"/internal/\" .. user_path)`,\n `ngx.redirect(\"https://example.com/\" .. target)`,\n `os.execute(\"rm -rf \" .. dir)`,", - Network accessline 18
], "snippet": " filePatterns: [\"**/*.lua\"],\n examples: [\n `ngx.exec(\"/internal/\" .. user_path)`,\n `ngx.redirect(\"https://example.com/\" .. target)`,\n `os.execute(\"rm -rf \" .. dir)`,", "matchedPattern": "exe - Dangerous shell operationline 19
"snippet": " filePatterns: [\"**/*.lua\"],\n examples: [\n `ngx.exec(\"/internal/\" .. user_path)`,\n `ngx.redirect(\"https://example.com/\" .. target)`,\n `os.execute(\"rm -rf \" .. dir)`,", - Network accessline 19
"snippet": " filePatterns: [\"**/*.lua\"],\n examples: [\n `ngx.exec(\"/internal/\" .. user_path)`,\n `ngx.redirect(\"https://example.com/\" .. target)`,\n `os.execute(\"rm -rf \" .. dir)`,",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/php-sql-raw.ts.json
- Dangerous shell operationline 10
"snippet": " examples: [\n `<?php\\n$result = $pdo->query(\"SELECT * FROM users WHERE id = \" . $id);`,\n `$pdo->exec(\"DELETE FROM users WHERE name = '\" . $name . \"'\");`,\n `$stmt = $pdo->prepare(\"SELECT * FROM t WHERE col = - Dangerous shell operationline 26
"snippet": " examples: [\n `<?php\\n$result = $pdo->query(\"SELECT * FROM users WHERE id = \" . $id);`,\n `$pdo->exec(\"DELETE FROM users WHERE name = '\" . $name . \"'\");`,\n `$stmt = $pdo->prepare(\"SELECT * FROM t WHERE col = - Dangerous shell operationline 34
"snippet": " `$pdo->exec(\"DELETE FROM users WHERE name = '\" . $name . \"'\");`,\n `$stmt = $pdo->prepare(\"SELECT * FROM t WHERE col = '\" . $col . \"'\");`,\n `mysqli_query($conn, \"SELECT * FROM users WHERE id = \" . $userId);`
.deepsec/data/deepsec/files/packages/scanner/src/matchers/postmessage-origin.ts.json
- Network accessline 56
17 ], "snippet": "};`,\n `frame.onmessage = function (e) { dispatch(e.data); };`,\n `addEventListener(\"message\", function (event) {\n if (event.origin !== \"https://trusted.example\") return;\n doStuff(event.data);\n}) - Network accessline 57
], "snippet": "};`,\n `frame.onmessage = function (e) { dispatch(e.data); };`,\n `addEventListener(\"message\", function (event) {\n if (event.origin !== \"https://trusted.example\") return;\n doStuff(event.data);\n});`,", - Network accessline 58
"snippet": "};`,\n `frame.onmessage = function (e) { dispatch(e.data); };`,\n `addEventListener(\"message\", function (event) {\n if (event.origin !== \"https://trusted.example\") return;\n doStuff(event.data);\n});`,", - Network accessline 64
18 ], "snippet": " `frame.onmessage = function (e) { dispatch(e.data); };`,\n `addEventListener(\"message\", function (event) {\n if (event.origin !== \"https://trusted.example\") return;\n doStuff(event.data);\n});`,\n - Network accessline 65
], "snippet": " `frame.onmessage = function (e) { dispatch(e.data); };`,\n `addEventListener(\"message\", function (event) {\n if (event.origin !== \"https://trusted.example\") return;\n doStuff(event.data);\n});`,\n ],", - Network accessline 66
"snippet": " `frame.onmessage = function (e) { dispatch(e.data); };`,\n `addEventListener(\"message\", function (event) {\n if (event.origin !== \"https://trusted.example\") return;\n doStuff(event.data);\n});`,\n ],",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/process-env-access.ts.json
- Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/prompt-leaks-system-prompt.ts.json
- Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/rb-sql-raw.ts.json
- Network accessline 8
24 ], "snippet": " `DB.fetch(\"SELECT * FROM t WHERE col = '#{val}'\")`,\n `Sequel.lit(\"name = '#{user_input}'\")`,\n `conn.exec(\"SELECT * FROM users WHERE id = #{user_id}\")`,\n ],\n match(content, filePath) {", - Network accessline 9
], "snippet": " `DB.fetch(\"SELECT * FROM t WHERE col = '#{val}'\")`,\n `Sequel.lit(\"name = '#{user_input}'\")`,\n `conn.exec(\"SELECT * FROM users WHERE id = #{user_id}\")`,\n ],\n match(content, filePath) {", "matc - Network accessline 10
"snippet": " `DB.fetch(\"SELECT * FROM t WHERE col = '#{val}'\")`,\n `Sequel.lit(\"name = '#{user_input}'\")`,\n `conn.exec(\"SELECT * FROM users WHERE id = #{user_id}\")`,\n ],\n match(content, filePath) {",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/rce.ts.json
- Dangerous shell operationline 34
"snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `child_process.exec(cmd);`,\n `exec(\\`ls \\${dir}\\`);`,\n `execSync(\"whoami\");`,", - Dangerous shell operationline 42
"snippet": " `child_process.exec(cmd);`,\n `exec(\\`ls \\${dir}\\`);`,\n `execSync(\"whoami\");`,\n `spawn(\"sh\", [\"-c\", cmd]);`,\n `spawnSync(\"git\", [\"status\"]);`,", - Dangerous shell operationline 50
"snippet": " `exec(\\`ls \\${dir}\\`);`,\n `execSync(\"whoami\");`,\n `spawn(\"sh\", [\"-c\", cmd]);`,\n `spawnSync(\"git\", [\"status\"]);`,\n `eval(userInput);`,", - Dangerous shell operationline 58
"snippet": " `execSync(\"whoami\");`,\n `spawn(\"sh\", [\"-c\", cmd]);`,\n `spawnSync(\"git\", [\"status\"]);`,\n `eval(userInput);`,\n `new Function(\"return \" + body)();`,", - Dangerous shell operationline 66
"snippet": " `spawn(\"sh\", [\"-c\", cmd]);`,\n `spawnSync(\"git\", [\"status\"]);`,\n `eval(userInput);`,\n `new Function(\"return \" + body)();`,\n `const cp = require(\"child_process\");`,", - Dangerous shell operationline 75
"snippet": " `spawnSync(\"git\", [\"status\"]);`,\n `eval(userInput);`,\n `new Function(\"return \" + body)();`,\n `const cp = require(\"child_process\");`,\n `import { exec } from \"child_process\";`,", - Dangerous shell operationline 83
"snippet": " `eval(userInput);`,\n `new Function(\"return \" + body)();`,\n `const cp = require(\"child_process\");`,\n `import { exec } from \"child_process\";`,\n `vm.runInNewContext(code, ctx);`,",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/secret-env-var.ts.json
- Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 63
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 117
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/secret-in-fallback.ts.json
- Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 128
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Access to secretsline 136
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/secret-in-log.ts.json
- Access to secretsline 19
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/secrets-exposure.ts.json
.deepsec/data/deepsec/files/packages/scanner/src/matchers/sensitive-data-in-traces.ts.json
.deepsec/data/deepsec/files/packages/scanner/src/matchers/slack-signing-verification.ts.json
- Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted]
.deepsec/data/deepsec/files/packages/scanner/src/matchers/ssrf.ts.json
- Network accessline 17
11 ], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,", - Network accessline 18
], "snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,", "matchedPattern": "fetch with request-derived URL" - Network accessline 19
"snippet": " filePatterns: [\"**/*.{ts,tsx,js,jsx}\"],\n examples: [\n `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,", - Network accessline 26
13 ], "snippet": " `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",", - Network accessline 27
], "snippet": " `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",", "matchedPattern": "ax - Network accessline 28
"snippet": " `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",", - Network accessline 34
14 ], "snippet": " `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",", - Network accessline 35
], "snippet": " `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",", "match - Network accessline 36
"snippet": " `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",", - Network accessline 42
15 ], "snippet": " `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],", - Network accessline 43
], "snippet": " `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],", "matchedPattern": "new URL from reques - Network accessline 44
"snippet": " `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],", - Network accessline 50
16 ], "snippet": " \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],\n match(content, filePath) {", - Network accessline 51
], "snippet": " \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],\n match(content, filePath) {", "matchedPattern": "fetch with interpolated URL - Network accessline 52
"snippet": " \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],\n match(content, filePath) {", - Network accessline 58
15 ], "snippet": " \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],", - Network accessline 59
], "snippet": " \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],", "matchedPattern": "new URL() from request input without hostname validation" - Network accessline 60
"snippet": " \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,\n \"fetch(`${userBase}/items`);\",\n ],", - Network accessline 66
10 ], "snippet": " examples: [\n `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,", - Network accessline 67
], "snippet": " examples: [\n `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,", "matchedPattern": "fetch(req.body.url) — default redirect: follow + caller-style URL" - Network accessline 68
"snippet": " examples: [\n `fetch(req.body.url);`,\n `fetch(query.target);`,\n `axios.get(req.body.endpoint);`,", - Network accessline 69
"matchedPattern": "fetch(req.body.url) — default redirect: follow + caller-style URL" - Network accessline 74
13 ], "snippet": " `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,", - Network accessline 75
], "snippet": " `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,", "matchedPattern": "fetch(params.url) — defau - Network accessline 76
"snippet": " `axios.get(req.body.endpoint);`,\n `axios.post(params.url, data);`,\n \"https.request(`https://api/${req.body.host}`);\",\n `new URL(req.query.target);`,", "matchedPattern": "fetch(params.url) — default redire - Network accessline 77
"matchedPattern": "fetch(params.url) — default redirect: follow + caller-style URL"
.deepsec/data/deepsec/files/packages/scanner/src/matchers/streaming-endpoint.ts.json
- Network accessline 24
28 ], "snippet": " `const r = await client.chat.completions.create({ model, messages, stream: true });`,\n `fetch(\"/api/chat\", { method: \"POST\" });`,\n `app.post(\"/api/completion\", handler);`,\n `await fetch(\" - Network accessline 25
], "snippet": " `const r = await client.chat.completions.create({ model, messages, stream: true });`,\n `fetch(\"/api/chat\", { method: \"POST\" });`,\n `app.post(\"/api/completion\", handler);`,\n `await fetch(\"/api/gene - Network accessline 26
"snippet": " `const r = await client.chat.completions.create({ model, messages, stream: true });`,\n `fetch(\"/api/chat\", { method: \"POST\" });`,\n `app.post(\"/api/completion\", handler);`,\n `await fetch(\"/api/generate\", {
.deepsec/data/deepsec/files/packages/scanner/src/matchers/tf-secret-in-data.ts.json
.deepsec/data/deepsec/files/packages/scanner/src/matchers/unsafe-deserialization.ts.json
- Dangerous shell operationline 22
"snippet": " `const payload = JSON.parse(await req.text());`,\n `const data = JSON.parse(await request.text());`,\n `eval(JSON.parse(input));`,\n `const fn = new Function(JSON.parse(spec));`,\n `const config = yaml.load(rawYa - Dangerous shell operationline 30
"snippet": " `const data = JSON.parse(await request.text());`,\n `eval(JSON.parse(input));`,\n `const fn = new Function(JSON.parse(spec));`,\n `const config = yaml.load(rawYaml);`,\n `const cfg = safeLoad(input);`,", - Dangerous shell operationline 63
"snippet": " `const out = JSON.parse(params.payload);`,\n `const filter = JSON.parse(query.filter);`,\n `const payload = JSON.parse(await req.text());`,\n `const data = JSON.parse(await request.text());`,\n `eval(JSON.parse(i - Dangerous shell operationline 71
"snippet": " `const payload = JSON.parse(await req.text());`,\n `const data = JSON.parse(await request.text());`,\n `eval(JSON.parse(input));`,\n `const fn = new Function(JSON.parse(spec));`,\n `const config = yaml.load(rawYa - Dangerous shell operationline 79
"snippet": " `const data = JSON.parse(await request.text());`,\n `eval(JSON.parse(input));`,\n `const fn = new Function(JSON.parse(spec));`,\n `const config = yaml.load(rawYaml);`,\n `const cfg = safeLoad(input);`,", - Dangerous shell operationline 88
"snippet": " `eval(JSON.parse(input));`,\n `const fn = new Function(JSON.parse(spec));`,\n `const config = yaml.load(rawYaml);`,\n `const cfg = safeLoad(input);`,\n ],",
.deepsec/data/deepsec/files/packages/scanner/src/matchers/untrusted-redirect-following.ts.json
- Network accessline 25
7 ], "snippet": " * Server-side fetch following redirects across hosts. Common SSRF bypass:\n * - Host validation runs against the request URL (\"https://allowed.com/...\")\n * - The fetch follows a 30x to \"https://169.254. - Network accessline 26
], "snippet": " * Server-side fetch following redirects across hosts. Common SSRF bypass:\n * - Host validation runs against the request URL (\"https://allowed.com/...\")\n * - The fetch follows a 30x to \"https://169.254.169.254/ - Network accessline 27
"snippet": " * Server-side fetch following redirects across hosts. Common SSRF bypass:\n * - Host validation runs against the request URL (\"https://allowed.com/...\")\n * - The fetch follows a 30x to \"https://169.254.169.254/...\", \" - Network accessline 41
16 ], "snippet": " *\n * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side\n * files where the URL likely derives from caller input. Also flags\n * explicit `redirect: 'follow'` and absence of `redirect:` s - Network accessline 42
], "snippet": " *\n * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side\n * files where the URL likely derives from caller input. Also flags\n * explicit `redirect: 'follow'` and absence of `redirect:` setting in - Network accessline 43
"snippet": " *\n * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side\n * files where the URL likely derives from caller input. Also flags\n * explicit `redirect: 'follow'` and absence of `redirect:` setting in", - Network accessline 44
"matchedPattern": "fetch(url) — default redirect: follow + caller-style URL" - Network accessline 49
18 ], "snippet": " * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side\n * files where the URL likely derives from caller input. Also flags\n * explicit `redirect: 'follow'` and absence of `redirect:` setti - Network accessline 50
], "snippet": " * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side\n * files where the URL likely derives from caller input. Also flags\n * explicit `redirect: 'follow'` and absence of `redirect:` setting in\n * - Network accessline 51
"snippet": " * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side\n * files where the URL likely derives from caller input. Also flags\n * explicit `redirect: 'follow'` and absence of `redirect:` setting in\n * suspicio - Network accessline 65
58 ], "snippet": "\n // fetch(url) call where `url` is a caller-style variable\n const m = line.match(\n /\\b(?:fetch|axios\\.\\s*(?:get|post|put|delete|head)|got|got\\.\\s*(?:get|post))\\s*\\(\\s*([^,)]+)/,", - Network accessline 66
], "snippet": "\n // fetch(url) call where `url` is a caller-style variable\n const m = line.match(\n /\\b(?:fetch|axios\\.\\s*(?:get|post|put|delete|head)|got|got\\.\\s*(?:get|post))\\s*\\(\\s*([^,)]+)/,", "mat - Network accessline 67
"snippet": "\n // fetch(url) call where `url` is a caller-style variable\n const m = line.match(\n /\\b(?:fetch|axios\\.\\s*(?:get|post|put|delete|head)|got|got\\.\\s*(?:get|post))\\s*\\(\\s*([^,)]+)/,", - Network accessline 68
"matchedPattern": "fetch(url) — default redirect: follow + caller-style URL" - Network accessline 84
51 ], "snippet": " `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyU - Network accessline 85
], "snippet": " `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,", - Network accessline 86
"snippet": " `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,", - Network accessline 92
27 ], "snippet": " filePatterns: [\"**/*.ts\", \"**/*.tsx\", \"**/*.js\", \"**/*.mjs\"],\n examples: [\n `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(r - Network accessline 93
], "snippet": " filePatterns: [\"**/*.ts\", \"**/*.tsx\", \"**/*.js\", \"**/*.mjs\"],\n examples: [\n `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUr - Network accessline 94
"snippet": " filePatterns: [\"**/*.ts\", \"**/*.tsx\", \"**/*.js\", \"**/*.mjs\"],\n examples: [\n `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,", - Network accessline 100
28 ], "snippet": " `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,", - Network accessline 101
], "snippet": " `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,", "matchedPattern": "fetch(callba - Network accessline 102
"snippet": " `await fetch(targetUrl, { redirect: \"follow\" });`,\n `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,", - Network accessline 103
"matchedPattern": "fetch(callbackUrl) — default redirect: follow + caller-style URL" - Network accessline 108
29 ], "snippet": " `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,", - Network accessline 109
], "snippet": " `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,", "matchedPattern": "fetch(redirectUrl) — default redi - Network accessline 110
"snippet": " `await fetch(callbackUrl);`,\n `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,", - Network accessline 111
"matchedPattern": "fetch(redirectUrl) — default redirect: follow + caller-style URL" - Network accessline 116
30 ], "snippet": " `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,", - Network accessline 117
], "snippet": " `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,", "matchedPattern": "fetch(webhookUrl) — - Network accessline 118
"snippet": " `const res = await fetch(redirectUrl);`,\n `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,", - Network accessline 119
"matchedPattern": "fetch(webhookUrl) — default redirect: follow + caller-style URL" - Network accessline 124
31 ], "snippet": " `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,", - Network accessline 125
], "snippet": " `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,", "matchedPattern": "fetch(companyUrl) — default redirect - Network accessline 126
"snippet": " `const r = await fetch(webhookUrl);`,\n `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,", - Network accessline 127
"matchedPattern": "fetch(companyUrl) — default redirect: follow + caller-style URL" - Network accessline 133
], "snippet": " `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,\n `await got(imageUrl);", "matchedPattern": "fetch(websiteUrl) — default redirect: follow + calle - Network accessline 134
"snippet": " `await axios.get(companyUrl);`,\n `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,\n `await got(imageUrl);", "matchedPattern": "fetch(websiteUrl) — default redirect: follow + caller-style U - Network accessline 135
"matchedPattern": "fetch(websiteUrl) — default redirect: follow + caller-style URL" - Network accessline 141
], "snippet": " `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,\n `await got(imageUrl);\ngot.get(imageUrl);`,", "matchedPattern": "fetch(domainUrl) — default redirect: follow + caller-style URL" - Network accessline 142
"snippet": " `await axios.post(websiteUrl, payload);`,\n `await got(domainUrl);`,\n `await got(imageUrl);\ngot.get(imageUrl);`,", "matchedPattern": "fetch(domainUrl) — default redirect: follow + caller-style URL" }, - Network accessline 143
"matchedPattern": "fetch(domainUrl) — default redirect: follow + caller-style URL" - Network accessline 148
34 ], "snippet": " `await got(domainUrl);`,\n `await got(imageUrl);\ngot.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,", - Network accessline 149
], "snippet": " `await got(domainUrl);`,\n `await got(imageUrl);\ngot.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,", "matchedPattern": "fetch(imageUrl) — default redirect: follow + caller-style URL" - Network accessline 150
"snippet": " `await got(domainUrl);`,\n `await got(imageUrl);\ngot.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,", - Network accessline 151
"matchedPattern": "fetch(imageUrl) — default redirect: follow + caller-style URL" - Network accessline 156
35 ], "snippet": " `await got(imageUrl);\ngot.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,", - Network accessline 157
], "snippet": " `await got(imageUrl);\ngot.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,", "matchedPattern": "fetch(imageUrl) — default redirect: foll - Network accessline 158
"snippet": " `await got(imageUrl);\ngot.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,", - Network accessline 159
"matchedPattern": "fetch(imageUrl) — default redirect: follow + caller-style URL" - Network accessline 164
36 ], "snippet": "got.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,\n ],", - Network accessline 165
], "snippet": "got.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,\n ],", "matchedPattern": "fetch(fetchUrl) — default redirect: follow + caller-style URL - Network accessline 166
"snippet": "got.get(imageUrl);`,\n `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,\n ],", - Network accessline 167
"matchedPattern": "fetch(fetchUrl) — default redirect: follow + caller-style URL" - Network accessline 172
37 ], "snippet": " `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,\n ],\n match(content, filePath) {", - Network accessline 173
], "snippet": " `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,\n ],\n match(content, filePath) {", "matchedPattern": "fetch(returnTo) — default redirect: follow + caller-s - Network accessline 174
"snippet": " `await fetch(fetchUrl, { method: \"GET\" });`,\n `await fetch(returnTo, { method: \"GET\" });`,\n ],\n match(content, filePath) {", - Network accessline 175
"matchedPattern": "fetch(returnTo) — default redirect: follow + caller-style URL" - Network accessline 188
71 ], "snippet": "\n // fetch(url) call where `url` is a caller-style variable\n const m = line.match(\n /\\b(?:fetch|axios\\.\\s*(?:get|post|put|delete|head)|got|got\\.\\s*(?:get|post))\\s*\\(\\s*([^,)]+)/,", - Network accessline 189
], "snippet": "\n // fetch(url) call where `url` is a caller-style variable\n const m = line.match(\n /\\b(?:fetch|axios\\.\\s*(?:get|post|put|delete|head)|got|got\\.\\s*(?:get|post))\\s*\\(\\s*([^,)]+)/,", "mat - Network accessline 190
"snippet": "\n // fetch(url) call where `url` is a caller-style variable\n const m = line.match(\n /\\b(?:fetch|axios\\.\\s*(?:get|post|put|delete|head)|got|got\\.\\s*(?:get|post))\\s*\\(\\s*([^,)]+)/,", - Network accessline 191
"matchedPattern": "fetch(url) — default redirect: follow + caller-style URL"
.deepsec/deepsec.config.ts
- Executable scriptline 1
Executable file
.deepsec/matchers/archive-extraction-untrusted.ts
- Executable scriptline 1
Executable file
.deepsec/package.json
- Executable scriptline 1
Executable file
.env.example
- Network accessline 5
[Credential-related source omitted] - Access to secretsline 6
[Credential-related source omitted] - Network accessline 7
ANTHROPIC_BASE_URL=https://ai-gateway.vercel.sh - Network accessline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 13
OPENAI_BASE_URL=https://ai-gateway.vercel.sh/v1
.github/workflows/deepsec.yml
- Access to secretsline 54
[Credential-related source omitted]
.github/workflows/release.yml
- Network accessline 7
# # One-time setup on npmjs.com: # 1. Visit https://www.npmjs.com/package/deepsec/access (must be a - Network accessline 8
# One-time setup on npmjs.com: # 1. Visit https://www.npmjs.com/package/deepsec/access (must be a # maintainer of the package). - Network accessline 9
# 1. Visit https://www.npmjs.com/package/deepsec/access (must be a - Network accessline 82
with: node-version: '24' registry-url: 'https://registry.npmjs.org' - Network accessline 83
node-version: '24' registry-url: 'https://registry.npmjs.org' cache: pnpm - Network accessline 84
registry-url: 'https://registry.npmjs.org' - Access to secretsline 124
[Credential-related source omitted]
CODE_OF_CONDUCT.md
CONTRIBUTING.md
- Network accessline 128
- Match the existing code style. Lint via [Biome](https://biomejs.dev/);
LICENSE
NOTICE
README.md
- Network accessline 3
[`deepsec`](https://deepsec.sh) is an agent-powered vulnerability scanner that you can run in your own infrastructure, optimized to perform on-demand review of all code in existing - Network accessline 6
`deepsec` is designed to surface hard-to-find issues that have been lurking in applications for a long time. It is configured to use the best models at maximum thinking levels (tunable via `--thinking-level`, see [models](https://github.com - Network accessline 13
<p> <a href="https://vercel.com/labs#labs-products"><img alt="Vercel Labs Product" src="https://img.shields.io/badge/LABS-PRODUCT-0a0a0a.svg?style=for-the-badge&logo=Vercel&labelColor=000000" height="28"></a> - Network accessline 14
<a href="https://vercel.com/labs#labs-products"><img alt="Vercel Labs Product" src="https://img.shields.io/badge/LABS-PRODUCT-0a0a0a.svg?style=for-the-badge&logo=Vercel&labelColor=000000" height="28"></a> - Network accessline 15
<a href="https://www.npmjs.com/package/deepsec"><img alt="npm version: deepsec" src="https://img.shields.io/npm/v/deepsec.svg?style=for-the-badge&labelColor=000000" height="28"></a> - Network accessline 16
<a href="https://github.com/vercel-labs/deepsec/blob/main/LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/github/license/vercel-labs/deepsec.svg?style=for-the-badge&labelColor=000000" height="28"></a> - Network accessline 17
<a href="https://www.npmjs.com/package/deepsec"><img alt="npm downloads per month: deepsec" src="https://img.shields.io/npm/dm/deepsec.svg?style=for-the-badge&labelColor=000000&label=npm%20downloads" height="28"></a> - Network accessline 59
The [getting started guide](https://github.com/vercel-labs/deepsec/blob/main/docs/getting-started.md) - Network accessline 70
- [Getting started](https://github.com/vercel-labs/deepsec/blob/main/docs/getting-started.md) — set up and run your first scan - Network accessline 71
- [Reviewing changes](https://github.com/vercel-labs/deepsec/blob/main/docs/reviewing-changes.md) — `process --diff` and CI gating - Network accessline 72
- [Supported technology](https://github.com/vercel-labs/deepsec/blob/main/docs/supported-tech.md) — built-in coverage - Network accessline 73
- [Generated and hand-authored matchers](https://github.com/vercel-labs/deepsec/blob/main/docs/writing-matchers.md) - Network accessline 74
- [Configuration](https://github.com/vercel-labs/deepsec/blob/main/docs/configuration.md) - Network accessline 75
- [Plugins](https://github.com/vercel-labs/deepsec/blob/main/docs/plugins.md) - Network accessline 76
- [Models](https://github.com/vercel-labs/deepsec/blob/main/docs/models.md) - Network accessline 77
- [Project link and credentials](https://github.com/vercel-labs/deepsec/blob/main/docs/vercel-setup.md) - Network accessline 78
- [Architecture](https://github.com/vercel-labs/deepsec/blob/main/docs/architecture.md) - Network accessline 79
- [Data layout](https://github.com/vercel-labs/deepsec/blob/main/docs/data-layout.md) - Network accessline 80
- [FAQ](https://github.com/vercel-labs/deepsec/blob/main/docs/faq.md) - Network accessline 81
- [Samples](https://github.com/vercel-labs/deepsec/tree/main/samples) - Network accessline 82
- [Contributing](https://github.com/vercel-labs/deepsec/blob/main/CONTRIBUTING.md) - Network accessline 91
Deepsec only ever stores the *name* of the environment variable holding your key, never the key itself. See [project link and credentials](https://github.com/vercel-labs/deepsec/blob/main/docs/vercel-setup.md) - Network accessline 92
your key, never the key itself. See [project link and credentials](https://github.com/vercel-labs/deepsec/blob/main/docs/vercel-setup.md) for the full reference. - Network accessline 93
[project link and credentials](https://github.com/vercel-labs/deepsec/blob/main/docs/vercel-setup.md) - Network accessline 103
Large monorepos can fan work across [Vercel Sandbox](https://vercel.com/docs/vercel-sandbox) microVMs:
biome.json
docs/architecture.md
- Network accessline 157
Five extension points, all defined in [`packages/core/src/plugin.ts`](https://github.com/vercel-labs/deepsec/blob/main/packages/core/src/plugin.ts): - Network accessline 158
[`packages/core/src/plugin.ts`](https://github.com/vercel-labs/deepsec/blob/main/packages/core/src/plugin.ts):
docs/configuration.md
- Network accessline 15
projects: [ { id: "my-app", root: "../my-app" }, { id: "service", root: "../service", githubUrl: "https://github.com/me/service/blob/main" }, - Network accessline 16
{ id: "my-app", root: "../my-app" }, { id: "service", root: "../service", githubUrl: "https://github.com/me/service/blob/main" }, ], - Network accessline 17
{ id: "service", root: "../service", githubUrl: "https://github.com/me/service/blob/main" }, - Network accessline 23
For a fully-worked example exercising every common field (`infoMarkdown`, `promptAppend`, `priorityPaths`, an inline plugin), see [`samples/webapp/deepsec.config.ts`](https://github.com/vercel-labs/deepsec/blob/main/samples/webapp/deepsec.c - Network accessline 25
see [`samples/webapp/deepsec.config.ts`](https://github.com/vercel-labs/deepsec/blob/main/samples/webapp/deepsec.config.ts). - Access to secretsline 46
[Credential-related source omitted] - Network accessline 52
provider: "openai", apiKeyEnv: "MY_OPENAI_KEY", baseUrl: "https://api.openai.com/v1", - Network accessline 53
apiKeyEnv: "MY_OPENAI_KEY", baseUrl: "https://api.openai.com/v1", } - Network accessline 54
baseUrl: "https://api.openai.com/v1", - Network accessline 60
provider: "martian", apiKeyEnv: "MARTIAN_KEY", baseUrl: "https://api.martian.example/v1", - Network accessline 61
apiKeyEnv: "MARTIAN_KEY", baseUrl: "https://api.martian.example/v1", credentialHeader: { name: "x-api-key", scheme: "raw" }, - Network accessline 62
baseUrl: "https://api.martian.example/v1", - Network accessline 76
| `id` | `string` | yes | Used as `--project-id` and the data directory name (`data/<id>/`). | | `root` | `string` | yes | Absolute or relative path to the codebase. | | `githubUrl` | `string` | no | `https://github.com/owner/repo/blob/bran - Network accessline 77
| `root` | `string` | yes | Absolute or relative path to the codebase. | | `githubUrl` | `string` | no | `https://github.com/owner/repo/blob/branch` — used in exports for clickable links. Auto-detected from `git remote` when omitted. | | `i - Network accessline 78
| `githubUrl` | `string` | no | `https://github.com/owner/repo/blob/branch` — used in exports for clickable links. Auto-detected from `git remote` when omitted. | - Network accessline 167
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Network accessline 168
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted] - Network accessline 169
[Credential-related source omitted] - Access to secretsline 169
[Credential-related source omitted] - Network accessline 175
|---|---|---| | `OPENAI_API_KEY` | `--agent codex`, `--agent pi --model openai/...` | Codex SDK token or Pi OpenAI-provider token. Unset is fine if `AI_GATEWAY_API_KEY` is set. | | `OPENAI_BASE_URL` | `--agent codex` | Default (when `AI_GAT - Network accessline 176
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Network accessline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted]
docs/data-layout.md
- Network accessline 30
The schemas below are the source of truth for any tool that reads `data/` directly. They live in [`packages/core/src/types.ts`](https://github.com/vercel-labs/deepsec/blob/main/packages/core/src/types.ts). - Network accessline 32
[`packages/core/src/types.ts`](https://github.com/vercel-labs/deepsec/blob/main/packages/core/src/types.ts). - Network accessline 41
| `rootPath` | `string` | Absolute path to the codebase. Updated each scan with the most recent `--root`. | | `createdAt` | `string` (ISO) | Project init time. | | `githubUrl` | `string?` | `https://github.com/owner/repo/blob/branch` — used - Network accessline 43
| `githubUrl` | `string?` | `https://github.com/owner/repo/blob/branch` — used for clickable links in exports. Auto-detected from `git remote` if not set. |
docs/faq.md
- Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 118
[sb]: https://vercel.com/docs/sandbox - Network accessline 191
See [SECURITY.md](https://github.com/vercel-labs/deepsec/blob/main/SECURITY.md). Don't open a public issue — use
docs/getting-started.md
docs/models.md
- Network accessline 16
GPT-5.6 Sol, Claude Opus 5, Kimi K3, Grok 4.5, and the current DeepSeek entry. Deepsec fetches the latest score, reasoning level, harness, and total run cost from [DeepSecBench](https://vercel.com/ai-gateway/leaderboards/deepsecbench/result - Network accessline 17
Deepsec fetches the latest score, reasoning level, harness, and total run cost from [DeepSecBench](https://vercel.com/ai-gateway/leaderboards/deepsecbench/results.json), then displays cost relative to the cheapest recommendation. A bundled - Network accessline 18
from [DeepSecBench](https://vercel.com/ai-gateway/leaderboards/deepsecbench/results.json), - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Network accessline 160
[Credential-related source omitted] - Access to secretsline 160
[Credential-related source omitted] - Network accessline 163
--model-auth custom \ --ai-provider martian \ --ai-base-url https://api.withmartian.com/v1 \ - Network accessline 164
--ai-provider martian \ --ai-base-url https://api.withmartian.com/v1 \ --ai-api-key-env MARTIAN_API_KEY \ - Network accessline 165
--ai-base-url https://api.withmartian.com/v1 \ - Access to secretsline 166
[Credential-related source omitted]
docs/plugins.md
- Network accessline 18
The plugin contract lives in [`packages/core/src/plugin.ts`](https://github.com/vercel-labs/deepsec/blob/main/packages/core/src/plugin.ts): - Network accessline 19
[`packages/core/src/plugin.ts`](https://github.com/vercel-labs/deepsec/blob/main/packages/core/src/plugin.ts): - Network accessline 107
A complete inline-plugin example with two real matchers lives at [`samples/webapp/deepsec.config.ts`](https://github.com/vercel-labs/deepsec/blob/main/samples/webapp/deepsec.config.ts) and - Network accessline 108
[`samples/webapp/deepsec.config.ts`](https://github.com/vercel-labs/deepsec/blob/main/samples/webapp/deepsec.config.ts) and - Network accessline 109
[`samples/webapp/matchers/`](https://github.com/vercel-labs/deepsec/tree/main/samples/webapp/matchers/) — the same - Network accessline 210
The Vercel-Sandbox path lives in [`packages/deepsec/src/sandbox/`](https://github.com/vercel-labs/deepsec/tree/main/packages/deepsec/src/sandbox); it's - Network accessline 211
[`packages/deepsec/src/sandbox/`](https://github.com/vercel-labs/deepsec/tree/main/packages/deepsec/src/sandbox); it's
docs/reviewing-changes.md
- Access to secretsline 136
[Credential-related source omitted] - Network accessline 217
deployment, swap each tag for the action's full commit SHA so a compromised tag can't pivot into your secret-bearing job. See [GitHub's hardening guide](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-ac - Network accessline 218
compromised tag can't pivot into your secret-bearing job. See [GitHub's hardening guide](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions). - **The AI gateway secret still flows through PR code.** E - Network accessline 219
[GitHub's hardening guide](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions).
docs/vercel-setup.md
- Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Network accessline 149
--ai-provider martian \ --ai-api-key-env MARTIAN_KEY \ --ai-base-url https://api.martian.example/v1 \ - Network accessline 150
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Network accessline 151
--ai-base-url https://api.martian.example/v1 \ - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Network accessline 215
References: [AI Gateway authentication](https://vercel.com/docs/ai-gateway/authentication-and-byok#quick-start), [Sandbox authentication](https://vercel.com/docs/vercel-sandbox/concepts/authentication).
e2e/bundle.test.ts
- Executable scriptline 1
Executable file
e2e/pipeline-sandbox.test.ts
e2e/pipeline.test.ts
- Executable scriptline 1
Executable file
e2e/scan.test.ts
- Executable scriptline 1
Executable file
e2e/vitest.config.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/package.json
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/api/admin.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/api/upload.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/api/users.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/components/comment.tsx
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/config.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/lib/crypto.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/lib/db.ts
- Executable scriptline 1
Executable file
fixtures/vulnerable-app/src/lib/fetch-proxy.ts
fixtures/vulnerable-app/src/utils/exec-helper.ts
fixtures/vulnerable-app/src/utils/redirect.ts
- Executable scriptline 1
Executable file
knip.json
package.json
packages/core/package.json
- Executable scriptline 1
Executable file
packages/core/src/__tests__/finding-id.test.ts
- Executable scriptline 1
Executable file
packages/core/src/__tests__/paths.test.ts
- Executable scriptline 1
Executable file
packages/core/src/__tests__/run.test.ts
- Executable scriptline 1
Executable file
packages/core/src/__tests__/schemas.test.ts
- Executable scriptline 1
Executable file
packages/core/src/__tests__/severity.test.ts
- Executable scriptline 1
Executable file
packages/core/src/__tests__/shutdown.test.ts
- Executable scriptline 1
Executable file
packages/core/src/config.ts
packages/core/src/finding-id.ts
- Executable scriptline 1
Executable file
packages/core/src/index.ts
- Executable scriptline 1
Executable file
packages/core/src/paths.ts
- Executable scriptline 1
Executable file
packages/core/src/plugin.ts
- Executable scriptline 1
Executable file
packages/core/src/run.ts
packages/core/src/schemas.ts
- Executable scriptline 1
Executable file
packages/core/src/types.ts
- Executable scriptline 1
Executable file
packages/core/vitest.config.ts
- Executable scriptline 1
Executable file
packages/deepsec/build.mjs
- Executable scriptline 1
Executable file
packages/deepsec/package.json
- Executable scriptline 1
Executable file - Network accessline 6
"repository": { "type": "git", "url": "https://github.com/vercel-labs/deepsec" - Network accessline 7
"type": "git", "url": "https://github.com/vercel-labs/deepsec" }, - Network accessline 8
"url": "https://github.com/vercel-labs/deepsec" - Network accessline 9
}, "homepage": "https://deepsec.sh", "type": "module", - Network accessline 10
"homepage": "https://deepsec.sh",
packages/deepsec/src/__tests__/agent-config.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 12
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 25
[Credential-related source omitted] - Network accessline 35
mode: "custom", provider: "acme", baseUrl: "https://models.acme.test/v1", - Network accessline 36
provider: "acme", baseUrl: "https://models.acme.test/v1", apiKeyEnv: "ACME_MODEL_KEY", - Network accessline 37
baseUrl: "https://models.acme.test/v1", - Network accessline 42
).toMatchObject({ aiProvider: "acme", aiBaseUrl: "https://models.acme.test/v1", - Network accessline 43
aiProvider: "acme", aiBaseUrl: "https://models.acme.test/v1", aiApiKeyEnv: "ACME_MODEL_KEY", - Network accessline 44
aiBaseUrl: "https://models.acme.test/v1",
packages/deepsec/src/__tests__/agent-defaults.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/credential-brokering.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 6
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Network accessline 101
[Credential-related source omitted] - Network accessline 102
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Network accessline 103
process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Network accessline 116
[Credential-related source omitted] - Network accessline 117
[Credential-related source omitted] - Access to secretsline 117
[Credential-related source omitted] - Network accessline 118
process.env.OPENAI_BASE_URL = "https://api.openai.com"; - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 134
[Credential-related source omitted] - Network accessline 137
[Credential-related source omitted] - Network accessline 138
[Credential-related source omitted] - Access to secretsline 138
[Credential-related source omitted] - Network accessline 139
process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 146
expect(env.ANTHROPIC_UPSTREAM_BASE_URL).toBe("https://ai-gateway.vercel.sh"); - Access to secretsline 151
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 163
[Credential-related source omitted] - Access to secretsline 164
[Credential-related source omitted] - Network accessline 165
const env = buildSandboxEnv("pi", credentials, { aiApiKeyEnv: "MARTIAN_API_KEY", aiBaseUrl: "https://api.withmartian.com/v1", - Network accessline 166
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Network accessline 167
aiBaseUrl: "https://api.withmartian.com/v1", - Network accessline 170
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted] - Network accessline 171
[Credential-related source omitted] - Access to secretsline 171
[Credential-related source omitted] - Network accessline 172
expect(env.DEEPSEC_PI_AI_BASE_URL).toBe("https://api.withmartian.com/v1");
packages/deepsec/src/__tests__/ensure-connected-workspace.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted]
packages/deepsec/src/__tests__/env-file.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/file-sources.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/formatters.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/merge-records.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/metrics.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/model-picker.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/model-route.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Network accessline 48
provider: "martian", apiKeyEnv: "MARTIAN_KEY", baseUrl: "https://api.martian.example/v1", - Network accessline 49
apiKeyEnv: "MARTIAN_KEY", baseUrl: "https://api.martian.example/v1", credentialHeader: { name: "X-Api-Key", scheme: "raw" }, - Network accessline 50
baseUrl: "https://api.martian.example/v1", - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Network accessline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Network accessline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Network accessline 76
ANTHROPIC_BASE_URL: "https://ai-gateway.vercel.sh", - Network accessline 82
applyResolvedModelRoute(resolved, env); expect(env.ANTHROPIC_AUTH_TOKEN).toBeUndefined(); expect(env.ANTHROPIC_BASE_URL).toBe("https://api.anthropic.com"); - Network accessline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Network accessline 84
expect(env.ANTHROPIC_BASE_URL).toBe("https://api.anthropic.com"); - Network accessline 88
[Credential-related source omitted] - Network accessline 89
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted] - Network accessline 90
ANTHROPIC_BASE_URL: "http://127.0.0.1:8787", - Network accessline 91
ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh", - Network accessline 96
); applyResolvedModelRoute(resolved, env); expect(env.ANTHROPIC_BASE_URL).toBe("http://127.0.0.1:8787"); - Network accessline 97
applyResolvedModelRoute(resolved, env); expect(env.ANTHROPIC_BASE_URL).toBe("http://127.0.0.1:8787"); expect(env.ANTHROPIC_UPSTREAM_BASE_URL).toBe("https://ai-gateway.vercel.sh"); - Network accessline 98
expect(env.ANTHROPIC_BASE_URL).toBe("http://127.0.0.1:8787"); - Network accessline 99
expect(env.ANTHROPIC_UPSTREAM_BASE_URL).toBe("https://ai-gateway.vercel.sh"); - Network accessline 107
provider: "x", apiKeyEnv: "X_KEY", baseUrl: "http://provider.example", - Network accessline 108
apiKeyEnv: "X_KEY", baseUrl: "http://provider.example", credentialHeader: { name: "Authorization", scheme: "bearer" }, - Network accessline 109
baseUrl: "http://provider.example", - Access to secretsline 112
[Credential-related source omitted]
packages/deepsec/src/__tests__/network-policy.test.ts
- Executable scriptline 1
Executable file - Network accessline 44
it("uses ANTHROPIC_UPSTREAM_BASE_URL host on the claude path", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 45
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, "claude-agent-sdk", - Network accessline 46
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 52
it("uses OPENAI_BASE_URL host on the codex path", () => { const policy = buildWorkerNetworkPolicy( { OPENAI_BASE_URL: "https://ai-gateway.vercel.sh/v1" }, - Network accessline 53
const policy = buildWorkerNetworkPolicy( { OPENAI_BASE_URL: "https://ai-gateway.vercel.sh/v1" }, "codex", - Network accessline 54
{ OPENAI_BASE_URL: "https://ai-gateway.vercel.sh/v1" }, - Network accessline 61
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com", - Network accessline 62
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com", OPENAI_BASE_URL: "https://api.openai.com", - Network accessline 63
ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com", - Network accessline 64
OPENAI_BASE_URL: "https://api.openai.com", - Network accessline 90
it("merges extraAllowedHosts with the derived host", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 91
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, "claude-agent-sdk", - Network accessline 92
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 100
it("dedupes when extras overlap with the derived host", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, - Network accessline 101
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, "claude-agent-sdk", - Network accessline 102
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, - Network accessline 111
it("injects Authorization on the claude AI host when a token is provided", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 112
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, "claude-agent-sdk", - Network accessline 113
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 120
it("injects Authorization on the codex AI host when an OpenAI token is provided", () => { const policy = buildWorkerNetworkPolicy( { OPENAI_BASE_URL: "https://ai-gateway.vercel.sh/v1" }, - Network accessline 121
const policy = buildWorkerNetworkPolicy( { OPENAI_BASE_URL: "https://ai-gateway.vercel.sh/v1" }, "codex", - Network accessline 122
{ OPENAI_BASE_URL: "https://ai-gateway.vercel.sh/v1" }, - Network accessline 134
it("uses the custom pi base URL host and custom token when provided", () => { const policy = buildWorkerNetworkPolicy( { DEEPSEC_PI_AI_BASE_URL: "https://api.withmartian.com/v1" }, - Network accessline 135
const policy = buildWorkerNetworkPolicy( { DEEPSEC_PI_AI_BASE_URL: "https://api.withmartian.com/v1" }, "pi", - Network accessline 136
{ DEEPSEC_PI_AI_BASE_URL: "https://api.withmartian.com/v1" }, - Access to secretsline 138
[Credential-related source omitted] - Network accessline 144
it("emits an attribution-only transform when no matching credential is provided", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 145
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, "claude-agent-sdk", - Network accessline 146
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 157
it("emits no transform on direct-provider hosts without credentials", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, - Network accessline 158
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, "claude-agent-sdk", - Network accessline 159
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, - Network accessline 169
const policy = buildWorkerNetworkPolicy( { OPENAI_BASE_URL: "https://api.openai.com" }, - Network accessline 170
{ OPENAI_BASE_URL: "https://api.openai.com" }, - Network accessline 177
it("does not attach the transform to extra allowed hosts", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 178
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, "claude-agent-sdk", - Network accessline 179
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 194
it("merges attribution headers into the brokered-token transform on the gateway host", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Network accessline 195
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, "claude-agent-sdk", - Network accessline 196
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://ai-gateway.vercel.sh" }, - Access to secretsline 210
[Credential-related source omitted] - Network accessline 220
it("sends no attribution headers to direct-provider hosts", () => { const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, - Network accessline 221
const policy = buildWorkerNetworkPolicy( { ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" }, "claude-agent-sdk", - Network accessline 222
{ ANTHROPIC_UPSTREAM_BASE_URL: "https://api.anthropic.com" },
packages/deepsec/src/__tests__/output-cap.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/pr-comment.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/preflight.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Network accessline 41
[Credential-related source omitted] - Network accessline 42
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Network accessline 43
OPENAI_BASE_URL: "https://api.openai.com/v1", - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Access to secretsline 146
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 151
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 169
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Access to secretsline 196
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Access to secretsline 199
[Credential-related source omitted] - Access to secretsline 203
[Credential-related source omitted] - Access to secretsline 204
[Credential-related source omitted] - Access to secretsline 209
[Credential-related source omitted] - Access to secretsline 210
[Credential-related source omitted] - Access to secretsline 222
[Credential-related source omitted] - Access to secretsline 230
[Credential-related source omitted] - Access to secretsline 231
[Credential-related source omitted] - Access to secretsline 245
[Credential-related source omitted] - Access to secretsline 250
[Credential-related source omitted] - Access to secretsline 265
[Credential-related source omitted] - Access to secretsline 274
[Credential-related source omitted] - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted] - Access to secretsline 291
[Credential-related source omitted] - Access to secretsline 293
[Credential-related source omitted] - Access to secretsline 294
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted] - Access to secretsline 300
[Credential-related source omitted] - Network accessline 302
[Credential-related source omitted] - Access to secretsline 302
[Credential-related source omitted] - Network accessline 303
[Credential-related source omitted] - Access to secretsline 303
[Credential-related source omitted] - Network accessline 304
expect(process.env.ANTHROPIC_BASE_URL).toBe("https://ai-gateway.vercel.sh"); - Network accessline 305
expect(process.env.OPENAI_BASE_URL).toBe("https://ai-gateway.vercel.sh/v1"); - Access to secretsline 308
[Credential-related source omitted] - Access to secretsline 309
[Credential-related source omitted] - Access to secretsline 310
[Credential-related source omitted] - Access to secretsline 312
[Credential-related source omitted] - Access to secretsline 313
[Credential-related source omitted] - Network accessline 316
[Credential-related source omitted] - Network accessline 317
[Credential-related source omitted] - Access to secretsline 317
[Credential-related source omitted] - Network accessline 318
process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; - Network accessline 319
await applyAiGatewayDefaults(); expect(process.env.ANTHROPIC_BASE_URL).toBe("https://api.anthropic.com"); expect(process.env.OPENAI_BASE_URL).toBe("https://ai-gateway.vercel.sh/v1"); - Network accessline 320
expect(process.env.ANTHROPIC_BASE_URL).toBe("https://api.anthropic.com"); - Network accessline 321
expect(process.env.OPENAI_BASE_URL).toBe("https://ai-gateway.vercel.sh/v1"); - Access to secretsline 324
[Credential-related source omitted] - Access to secretsline 325
[Credential-related source omitted] - Access to secretsline 327
[Credential-related source omitted] - Network accessline 328
[Credential-related source omitted] - Access to secretsline 328
[Credential-related source omitted] - Network accessline 329
[Credential-related source omitted] - Access to secretsline 329
[Credential-related source omitted] - Network accessline 330
expect(process.env.ANTHROPIC_BASE_URL).toBe("https://ai-gateway.vercel.sh"); - Network accessline 331
expect(process.env.OPENAI_BASE_URL).toBe("https://ai-gateway.vercel.sh/v1"); - Access to secretsline 337
[Credential-related source omitted] - Access to secretsline 347
[Credential-related source omitted] - Access to secretsline 348
[Credential-related source omitted] - Access to secretsline 353
[Credential-related source omitted] - Access to secretsline 354
[Credential-related source omitted] - Access to secretsline 355
[Credential-related source omitted] - Access to secretsline 357
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 359
[Credential-related source omitted] - Access to secretsline 363
[Credential-related source omitted] - Access to secretsline 369
[Credential-related source omitted] - Access to secretsline 370
[Credential-related source omitted] - Access to secretsline 371
[Credential-related source omitted] - Access to secretsline 372
[Credential-related source omitted] - Access to secretsline 378
[Credential-related source omitted] - Network accessline 379
[Credential-related source omitted] - Access to secretsline 380
[Credential-related source omitted] - Network accessline 381
process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; - Network accessline 385
[Credential-related source omitted] - Access to secretsline 385
[Credential-related source omitted] - Network accessline 386
expect(process.env.ANTHROPIC_BASE_URL).toBe("https://api.anthropic.com"); - Access to secretsline 387
[Credential-related source omitted] - Access to secretsline 388
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Access to secretsline 399
[Credential-related source omitted] - Network accessline 400
[Credential-related source omitted] - Access to secretsline 400
[Credential-related source omitted] - Network accessline 401
[Credential-related source omitted] - Access to secretsline 401
[Credential-related source omitted] - Network accessline 402
expect(process.env.ANTHROPIC_BASE_URL).toBe("https://ai-gateway.vercel.sh"); - Network accessline 403
expect(process.env.OPENAI_BASE_URL).toBe("https://ai-gateway.vercel.sh/v1"); - Access to secretsline 407
[Credential-related source omitted] - Access to secretsline 413
[Credential-related source omitted] - Access to secretsline 414
[Credential-related source omitted]
packages/deepsec/src/__tests__/resolve-agent-type.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/resolve-project-id.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/sandbox-tools.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-coordinator.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted]
packages/deepsec/src/__tests__/setup-coverage.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-fingerprint.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-generated-matchers.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-install.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-interaction.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-lock.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-options.test.ts
- Executable scriptline 1
Executable file - Network accessline 35
aiProvider: "acme", aiApiKeyEnv: "ACME_KEY", aiBaseUrl: "https://models.example.test/v1", - Network accessline 36
[Credential-related source omitted] - Network accessline 37
aiBaseUrl: "https://models.example.test/v1", - Network accessline 42
provider: "acme", apiKeyEnv: "ACME_KEY", baseUrl: "https://models.example.test/v1", - Network accessline 43
apiKeyEnv: "ACME_KEY", baseUrl: "https://models.example.test/v1", credentialHeader: { name: "x-api-key", scheme: "raw" }, - Network accessline 44
baseUrl: "https://models.example.test/v1", - Network accessline 52
aiProvider: "acme", aiApiKeyEnv: "ACME_KEY", aiBaseUrl: "https://models.example.test/v1", - Network accessline 53
aiApiKeyEnv: "ACME_KEY", aiBaseUrl: "https://models.example.test/v1", }; - Network accessline 54
aiBaseUrl: "https://models.example.test/v1",
packages/deepsec/src/__tests__/setup-output.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-persisted-route.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-plan.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-project-name.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-protocol.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-reporter.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 18
[Credential-related source omitted] - Network accessline 36
const redact = createSetupRedactor({}); const value = redact( "Bearer abcdefghijklmnop eyJhbGciOiJIUzI1NiJ9.cGF5bG9hZA.c2ln https://user:password@example.com/path", - Network accessline 37
const value = redact( "Bearer abcdefghijklmnop eyJhbGciOiJIUzI1NiJ9.cGF5bG9hZA.c2ln https://user:password@example.com/path", ); - Network accessline 38
"Bearer abcdefghijklmnop eyJhbGciOiJIUzI1NiJ9.cGF5bG9hZA.c2ln https://user:password@example.com/path", - Access to secretsline 52
[Credential-related source omitted]
packages/deepsec/src/__tests__/setup-repository-analysis.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-state.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-tui.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/setup-workspace-config.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/tarball.test.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/__tests__/vercel-link.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Access to secretsline 221
[Credential-related source omitted] - Access to secretsline 234
[Credential-related source omitted]
packages/deepsec/src/agent-config.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/agent-defaults.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/atomic-file.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/auth/ensure-connected-workspace.ts
packages/deepsec/src/auth/model-picker.ts
packages/deepsec/src/auth/model-route-prompt.ts
packages/deepsec/src/auth/model-route.ts
- Executable scriptline 1
Executable file - Network accessline 43
anthropic: { env: "ANTHROPIC_API_KEY", baseUrl: "https://api.anthropic.com", - Network accessline 44
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted] - Network accessline 45
baseUrl: "https://api.anthropic.com", - Network accessline 47
openai: { env: "OPENAI_API_KEY", baseUrl: "https://api.openai.com/v1", - Network accessline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 49
baseUrl: "https://api.openai.com/v1", - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Network accessline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Network accessline 132
[Credential-related source omitted] - Network accessline 133
[Credential-related source omitted] - Access to secretsline 133
[Credential-related source omitted] - Network accessline 136
[Credential-related source omitted] - Network accessline 137
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Network accessline 138
ANTHROPIC_BASE_URL: "https://ai-gateway.vercel.sh", - Access to secretsline 168
[Credential-related source omitted] - Access to secretsline 169
[Credential-related source omitted] - Access to secretsline 226
[Credential-related source omitted] - Network accessline 239
function modelsEndpoint(route: ResolvedModelRoute): URL { if (route.route.mode === "gateway") return new URL("https://ai-gateway.vercel.sh/v1/models"); - Network accessline 240
if (route.route.mode === "gateway") return new URL("https://ai-gateway.vercel.sh/v1/models");
packages/deepsec/src/auth/vercel-link.ts
- Executable scriptline 1
Executable file - Access to secretsline 289
[Credential-related source omitted] - Access to secretsline 294
[Credential-related source omitted] - Access to secretsline 309
[Credential-related source omitted] - Access to secretsline 322
[Credential-related source omitted] - Access to secretsline 487
[Credential-related source omitted]
packages/deepsec/src/cli.ts
- Executable scriptline 1
Executable file - Access to secretsline 4
[Credential-related source omitted] - Network accessline 82
See \`deepsec init --help\` and the docs at: https://github.com/vercel/deepsec`, - Network accessline 83
https://github.com/vercel/deepsec`, - Access to secretsline 143
[Credential-related source omitted] - Access to secretsline 230
[Credential-related source omitted] - Access to secretsline 582
[Credential-related source omitted]
packages/deepsec/src/commands/enrich.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/export.ts
- Executable scriptline 1
Executable file - Network accessline 157
...owners.oncall.slice(0, 3).map((o) => { const gh = o.github_username ? ` • [@${o.github_username}](https://github.com/${o.github_username})` - Network accessline 158
const gh = o.github_username ? ` • [@${o.github_username}](https://github.com/${o.github_username})` : ""; - Network accessline 159
? ` • [@${o.github_username}](https://github.com/${o.github_username})`
packages/deepsec/src/commands/init-project.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/init.ts
- Executable scriptline 1
Executable file - Access to secretsline 365
[Credential-related source omitted] - Network accessline 516
This directory holds the [deepsec](https://www.npmjs.com/package/deepsec) - Network accessline 589
Or browse on [GitHub](https://github.com/vercel/deepsec/tree/main/docs). - Network accessline 590
[GitHub](https://github.com/vercel/deepsec/tree/main/docs).
packages/deepsec/src/commands/metrics.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/process.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/report.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/revalidate.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/sandbox-all.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/sandbox-process.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/scan.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/setup.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/status.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/commands/triage.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/config.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/data-commit.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/env-file.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/file-sources.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/formatters.ts
packages/deepsec/src/load-config.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/output-cap.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/pr-comment.ts
packages/deepsec/src/preflight.ts
- Executable scriptline 1
Executable file - Network accessline 29
const SETUP_DOC_URL = "https://github.com/vercel-labs/deepsec/blob/main/docs/vercel-setup.md"; - Network accessline 33
const GATEWAY_ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 34
const GATEWAY_OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Network accessline 70
* * Existing values always win — this only fills in what's missing, so a * user who has set, say, `ANTHROPIC_BASE_URL=https://api.anthropic.com` - Network accessline 71
* Existing values always win — this only fills in what's missing, so a * user who has set, say, `ANTHROPIC_BASE_URL=https://api.anthropic.com` * for direct-to-provider access doesn't get silently rerouted. - Network accessline 72
* user who has set, say, `ANTHROPIC_BASE_URL=https://api.anthropic.com` - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Access to secretsline 158
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 244
[Credential-related source omitted] - Access to secretsline 261
[Credential-related source omitted] - Access to secretsline 266
[Credential-related source omitted] - Access to secretsline 267
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 269
[Credential-related source omitted] - Access to secretsline 273
[Credential-related source omitted] - Access to secretsline 279
[Credential-related source omitted] - Access to secretsline 281
[Credential-related source omitted] - Access to secretsline 282
[Credential-related source omitted] - Access to secretsline 288
[Credential-related source omitted] - Access to secretsline 295
[Credential-related source omitted] - Access to secretsline 309
[Credential-related source omitted] - Access to secretsline 321
[Credential-related source omitted] - Access to secretsline 329
[Credential-related source omitted] - Access to secretsline 334
[Credential-related source omitted] - Access to secretsline 337
[Credential-related source omitted]
packages/deepsec/src/quota-message.ts
- Executable scriptline 1
Executable file - Network accessline 23
const SETUP_DOC_URL = "https://github.com/vercel-labs/deepsec/blob/main/docs/vercel-setup.md"; - Network accessline 30
const AI_GATEWAY_TOPUP_URL = "https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up"; - Network accessline 33
const AI_GATEWAY_TOPUP_DOC_URL = "https://vercel.com/docs/ai-gateway/pricing#top-up-your-ai-gateway-credits"; - Network accessline 34
"https://vercel.com/docs/ai-gateway/pricing#top-up-your-ai-gateway-credits"; - Access to secretsline 97
[Credential-related source omitted]
packages/deepsec/src/require-dir.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/resolve-agent-type.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/resolve-project-id.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/download.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/merge-records.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/orchestrator.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/partitioner.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/request-proxy.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 13
// // The Claude Agent SDK / Codex CLI talks to us via ANTHROPIC_BASE_URL or // OPENAI_BASE_URL set to http://127.0.0.1:PROXY_PORT (or .../v1 for OpenAI). - Network accessline 14
// The Claude Agent SDK / Codex CLI talks to us via ANTHROPIC_BASE_URL or // OPENAI_BASE_URL set to http://127.0.0.1:PROXY_PORT (or .../v1 for OpenAI). // - Network accessline 15
// OPENAI_BASE_URL set to http://127.0.0.1:PROXY_PORT (or .../v1 for OpenAI). - Network accessline 80
const url = UPSTREAM + req.url; const up = await fetch(url, { - Network accessline 81
const up = await fetch(url, {
packages/deepsec/src/sandbox/setup.ts
- Executable scriptline 1
Executable file - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Network accessline 109
const PROXY_PORT = 8787; const PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`; - Network accessline 110
const PROXY_URL = `http://127.0.0.1:${PROXY_PORT}`; - Access to secretsline 137
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Access to secretsline 140
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 316
[Credential-related source omitted] - Access to secretsline 320
[Credential-related source omitted] - Network accessline 530
const script = ` for i in $(seq 1 50); do if (echo > /dev/tcp/127.0.0.1/${PROXY_PORT}) 2>/dev/null; then - Network accessline 531
for i in $(seq 1 50); do if (echo > /dev/tcp/127.0.0.1/${PROXY_PORT}) 2>/dev/null; then echo "proxy ready after \${i} attempts" - Dangerous shell operationline 532
if (echo > /dev/tcp/127.0.0.1/${PROXY_PORT}) 2>/dev/null; then - Network accessline 532
if (echo > /dev/tcp/127.0.0.1/${PROXY_PORT}) 2>/dev/null; then - Dangerous shell operationline 596
rm -rf /tmp/claude-native-fetch && mkdir -p /tmp/claude-native-fetch - Access to secretsline 608
[Credential-related source omitted] - Access to secretsline 609
[Credential-related source omitted] - Access to secretsline 610
[Credential-related source omitted] - Access to secretsline 611
[Credential-related source omitted] - Dangerous shell operationline 615
rm -rf /tmp/claude-native-fetch - Network accessline 684
esac local rel="10.3.0" local url="https://github.com/sharkdp/fd/releases/download/v\${rel}/fd-v\${rel}-\${arch}.tar.gz" - Network accessline 685
local rel="10.3.0" local url="https://github.com/sharkdp/fd/releases/download/v\${rel}/fd-v\${rel}-\${arch}.tar.gz" log "Downloading fd \${rel} (\${arch}) from GitHub..." - Network accessline 686
local url="https://github.com/sharkdp/fd/releases/download/v\${rel}/fd-v\${rel}-\${arch}.tar.gz" - Network accessline 687
log "Downloading fd \${rel} (\${arch}) from GitHub..." rm -rf /tmp/fd-fetch && mkdir -p /tmp/fd-fetch && cd /tmp/fd-fetch if ! curl -fsSL --retry 3 -o fd.tar.gz "\${url}"; then - Dangerous shell operationline 688
rm -rf /tmp/fd-fetch && mkdir -p /tmp/fd-fetch && cd /tmp/fd-fetch - Network accessline 688
rm -rf /tmp/fd-fetch && mkdir -p /tmp/fd-fetch && cd /tmp/fd-fetch if ! curl -fsSL --retry 3 -o fd.tar.gz "\${url}"; then log "WARN: fd download failed: \${url}" - Network accessline 689
if ! curl -fsSL --retry 3 -o fd.tar.gz "\${url}"; then - Dangerous shell operationline 701
cd / && rm -rf /tmp/fd-fetch - Network accessline 714
esac local rel="14.1.1" local url="https://github.com/BurntSushi/ripgrep/releases/download/\${rel}/ripgrep-\${rel}-\${arch}.tar.gz" - Network accessline 715
local rel="14.1.1" local url="https://github.com/BurntSushi/ripgrep/releases/download/\${rel}/ripgrep-\${rel}-\${arch}.tar.gz" log "Downloading ripgrep \${rel} (\${arch}) from GitHub..." - Network accessline 716
local url="https://github.com/BurntSushi/ripgrep/releases/download/\${rel}/ripgrep-\${rel}-\${arch}.tar.gz" - Network accessline 717
log "Downloading ripgrep \${rel} (\${arch}) from GitHub..." rm -rf /tmp/rg-fetch && mkdir -p /tmp/rg-fetch && cd /tmp/rg-fetch if ! curl -fsSL --retry 3 -o rg.tar.gz "\${url}"; then - Dangerous shell operationline 718
rm -rf /tmp/rg-fetch && mkdir -p /tmp/rg-fetch && cd /tmp/rg-fetch - Network accessline 718
rm -rf /tmp/rg-fetch && mkdir -p /tmp/rg-fetch && cd /tmp/rg-fetch if ! curl -fsSL --retry 3 -o rg.tar.gz "\${url}"; then log "WARN: ripgrep download failed: \${url}" - Network accessline 719
if ! curl -fsSL --retry 3 -o rg.tar.gz "\${url}"; then - Dangerous shell operationline 731
cd / && rm -rf /tmp/rg-fetch - Access to secretsline 872
[Credential-related source omitted] - Dangerous shell operationline 875
rm -rf /tmp/codex-native-fetch && mkdir -p /tmp/codex-native-fetch - Access to secretsline 898
[Credential-related source omitted] - Dangerous shell operationline 899
[Credential-related source omitted] - Access to secretsline 899
[Credential-related source omitted] - Access to secretsline 900
[Credential-related source omitted] - Access to secretsline 901
[Credential-related source omitted] - Access to secretsline 902
[Credential-related source omitted] - Access to secretsline 903
[Credential-related source omitted] - Access to secretsline 915
[Credential-related source omitted] - Dangerous shell operationline 918
rm -rf /tmp/codex-native-fetch
packages/deepsec/src/sandbox/shutdown.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/state.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/types.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/sandbox/upload.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/coordinator.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/coverage.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/fingerprint.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/generated-matchers.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/install.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/interaction.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/lock.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/options.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/output.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/persisted-route.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/plan.ts
packages/deepsec/src/setup/project-name.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/protocol.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/reporter.ts
packages/deepsec/src/setup/repository-analysis.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/state.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/status.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/tui.tsx
- Executable scriptline 1
Executable file
packages/deepsec/src/setup/workspace-config.ts
- Executable scriptline 1
Executable file
packages/deepsec/src/version.ts
- Executable scriptline 1
Executable file
packages/deepsec/vitest.config.ts
- Executable scriptline 1
Executable file
packages/processor/package.json
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/attribution.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 29
describe("buildClaudeEnv attribution", () => { it("sets ANTHROPIC_CUSTOM_HEADERS when the base URL is the gateway", () => { process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 30
[Credential-related source omitted] - Network accessline 31
process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 32
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Network accessline 33
const env = buildClaudeEnv(); expect(env.ANTHROPIC_CUSTOM_HEADERS).toContain("http-referer: https://deepsec.sh"); expect(env.ANTHROPIC_CUSTOM_HEADERS).toMatch(/x-title: deepsec/); - Network accessline 34
expect(env.ANTHROPIC_CUSTOM_HEADERS).toContain("http-referer: https://deepsec.sh"); - Network accessline 38
it("omits ANTHROPIC_CUSTOM_HEADERS for direct-Anthropic runs", () => { process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; - Network accessline 39
process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; - Access to secretsline 40
[Credential-related source omitted] - Network accessline 48
it("appends to a user-supplied ANTHROPIC_CUSTOM_HEADERS instead of clobbering", () => { process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 49
process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 51
const value = buildClaudeEnv().ANTHROPIC_CUSTOM_HEADERS ?? ""; expect(value).toContain("x-custom: keep-me"); expect(value).toContain("http-referer: https://deepsec.sh"); - Network accessline 52
expect(value).toContain("x-custom: keep-me"); expect(value).toContain("http-referer: https://deepsec.sh"); expect(value.indexOf("x-custom")).toBe(0); - Network accessline 53
expect(value).toContain("http-referer: https://deepsec.sh"); - Network accessline 57
it("lets a user-set attribution header win over ours", () => { process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 58
process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 64
expect(value.match(/x-title/gi)).toHaveLength(1); expect(value).toContain("http-referer: https://deepsec.sh"); - Network accessline 65
expect(value).toContain("http-referer: https://deepsec.sh"); - Network accessline 69
describe("buildGatewayProviderConfig attribution", () => { it("adds http_headers for the gateway base URL (either form)", () => { for (const url of ["https://ai-gateway.vercel.sh", "https://ai-gateway.vercel.sh/v1"]) { - Network accessline 70
it("adds http_headers for the gateway base URL (either form)", () => { for (const url of ["https://ai-gateway.vercel.sh", "https://ai-gateway.vercel.sh/v1"]) { const config = buildGatewayProviderConfig(url); - Network accessline 71
for (const url of ["https://ai-gateway.vercel.sh", "https://ai-gateway.vercel.sh/v1"]) { - Network accessline 72
const config = buildGatewayProviderConfig(url); expect(config.base_url).toBe("https://ai-gateway.vercel.sh/v1"); expect(config.http_headers).toMatchObject({ - Network accessline 73
expect(config.base_url).toBe("https://ai-gateway.vercel.sh/v1"); - Network accessline 74
expect(config.http_headers).toMatchObject({ "http-referer": "https://deepsec.sh", }); - Network accessline 75
"http-referer": "https://deepsec.sh", - Network accessline 80
it("omits http_headers for direct-provider base URLs", () => { const config = buildGatewayProviderConfig("https://api.openai.com/v1"); - Network accessline 81
const config = buildGatewayProviderConfig("https://api.openai.com/v1");
packages/processor/src/__tests__/batch.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/codex-setup.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/pi-sdk-tools.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Network accessline 93
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Network accessline 95
process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; - Access to secretsline 106
[Credential-related source omitted] - Network accessline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Network accessline 108
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Network accessline 109
process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; let called = false; globalThis.fetch = async () => { - Network accessline 138
[Credential-related source omitted] - Access to secretsline 138
[Credential-related source omitted] - Network accessline 139
process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; let called = false; globalThis.fetch = async () => { - Access to secretsline 149
[Credential-related source omitted] - Network accessline 156
[Credential-related source omitted] - Network accessline 157
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Network accessline 158
process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; let called = false; globalThis.fetch = async () => { - Network accessline 177
const config = registry.getRegisteredProviderConfig("vercel-ai-gateway"); expect(config?.headers).toMatchObject({ "http-referer": "https://deepsec.sh", - Network accessline 178
expect(config?.headers).toMatchObject({ "http-referer": "https://deepsec.sh", }); - Network accessline 179
"http-referer": "https://deepsec.sh", - Access to secretsline 184
[Credential-related source omitted] - Network accessline 189
[Credential-related source omitted] - Network accessline 190
[Credential-related source omitted] - Access to secretsline 190
[Credential-related source omitted] - Network accessline 191
process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; - Network accessline 196
await resolvePiModelWithDynamicGateway(registry, "acme/nonexistent-model-1", {}); const config = registry.getRegisteredProviderConfig("vercel-ai-gateway"); expect(config?.headers?.["http-referer"]).toBe("https://deepsec.sh"); - Network accessline 197
const config = registry.getRegisteredProviderConfig("vercel-ai-gateway"); expect(config?.headers?.["http-referer"]).toBe("https://deepsec.sh"); }); - Network accessline 198
expect(config?.headers?.["http-referer"]).toBe("https://deepsec.sh"); - Access to secretsline 202
[Credential-related source omitted] - Network accessline 204
configureProviderOverrides(registry, { aiProvider: "acme", aiBaseUrl: "https://models.acme.test/v1", - Network accessline 205
aiProvider: "acme", aiBaseUrl: "https://models.acme.test/v1", aiApiKeyEnv: "ACME_MODEL_KEY", - Network accessline 206
aiBaseUrl: "https://models.acme.test/v1", - Network accessline 209
}); expect(registry.getRegisteredProviderConfig("acme")).toMatchObject({ baseUrl: "https://models.acme.test/v1", - Network accessline 210
[Credential-related source omitted] - Network accessline 211
baseUrl: "https://models.acme.test/v1",
packages/processor/src/__tests__/process-revalidate.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/prompt-assemble.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/prompt-samples.fixtures.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/prompt-samples.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/reconcile.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/registry.test.ts
- Executable scriptline 1
Executable file
packages/processor/src/__tests__/shared.test.ts
- Executable scriptline 1
Executable file - Network accessline 65
expect( classifyQuotaError( "Credit balance too low · Add funds: https://platform.claude.com/settings/billing", - Network accessline 66
classifyQuotaError( "Credit balance too low · Add funds: https://platform.claude.com/settings/billing", "claude", - Network accessline 67
"Credit balance too low · Add funds: https://platform.claude.com/settings/billing", - Network accessline 98
expect( classifyQuotaError( "You've hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus)", - Network accessline 99
classifyQuotaError( "You've hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus)", "codex", - Network accessline 100
"You've hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus)", - Network accessline 104
expect( classifyQuotaError( "You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits", - Network accessline 105
classifyQuotaError( "You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits", "codex", - Network accessline 106
"You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits", - Network accessline 150
expect( classifyQuotaError( '{"error":{"message":"Insufficient funds. Please add credits to your account to continue using AI services. Visit https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up to top up your cre - Network accessline 151
classifyQuotaError( '{"error":{"message":"Insufficient funds. Please add credits to your account to continue using AI services. Visit https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up to top up your credits.","type": - Network accessline 152
'{"error":{"message":"Insufficient funds. Please add credits to your account to continue using AI services. Visit https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up to top up your credits.","type":"insufficient_funds"}}', - Access to secretsline 207
[Credential-related source omitted] - Access to secretsline 220
[Credential-related source omitted] - Access to secretsline 221
[Credential-related source omitted] - Network accessline 225
it("returns true when ANTHROPIC_BASE_URL points at the gateway", () => { process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 226
process.env.ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 230
it("returns true when OPENAI_BASE_URL points at the gateway (with trailing slash)", () => { process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1/"; - Network accessline 231
process.env.OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1/"; - Network accessline 235
it("returns false when neither base URL points at the gateway", () => { process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; - Network accessline 236
process.env.ANTHROPIC_BASE_URL = "https://api.anthropic.com"; - Network accessline 237
process.env.OPENAI_BASE_URL = "https://api.openai.com/v1"; - Network accessline 246
describe("isGatewayBaseUrl", () => { it("accepts the Anthropic-adapter root URL, with and without trailing slash", () => { expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh")).toBe(true); - Network accessline 247
it("accepts the Anthropic-adapter root URL, with and without trailing slash", () => { expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh")).toBe(true); expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh/")).toBe(true); - Network accessline 248
expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh")).toBe(true); - Network accessline 249
expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh/")).toBe(true); - Network accessline 252
it("accepts the OpenAI-compat /v1 URL, with and without trailing slash", () => { expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh/v1")).toBe(true); - Network accessline 253
expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh/v1")).toBe(true); - Network accessline 254
expect(isGatewayBaseUrl("https://ai-gateway.vercel.sh/v1/")).toBe(true); - Network accessline 257
it("rejects direct-provider URLs and undefined", () => { expect(isGatewayBaseUrl("https://api.anthropic.com")).toBe(false); - Network accessline 258
expect(isGatewayBaseUrl("https://api.anthropic.com")).toBe(false); - Network accessline 259
expect(isGatewayBaseUrl("https://api.openai.com/v1")).toBe(false); - Network accessline 270
it("falls back to a bare title when the version setter never ran", () => { expect(attributionHeaders()).toEqual({ "http-referer": "https://deepsec.sh", - Network accessline 271
expect(attributionHeaders()).toEqual({ "http-referer": "https://deepsec.sh", "x-title": "deepsec", - Network accessline 272
"http-referer": "https://deepsec.sh",
packages/processor/src/__tests__/stub-agent.ts
- Executable scriptline 1
Executable file
packages/processor/src/agents/claude-agent-sdk.ts
- Executable scriptline 1
Executable file - Network accessline 42
* resolves this from its bundled platform-specific optional * dependencies, but pnpm sometimes ships incomplete content for * platform variants it didn't fetch (the Linux-x64-musl shell exists - Network accessline 43
* dependencies, but pnpm sometimes ships incomplete content for * platform variants it didn't fetch (the Linux-x64-musl shell exists * but its `claude` binary is absent). Setting this env var lets CI - Network accessline 44
* platform variants it didn't fetch (the Linux-x64-musl shell exists - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 134
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Access to secretsline 140
[Credential-related source omitted]
packages/processor/src/agents/codex-sdk.ts
- Executable scriptline 1
Executable file - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 295
[Credential-related source omitted] - Access to secretsline 322
[Credential-related source omitted] - Access to secretsline 361
[Credential-related source omitted] - Access to secretsline 373
[Credential-related source omitted] - Access to secretsline 390
[Credential-related source omitted] - Network accessline 541
* doesn't return cost like Anthropic does, so we compute it here. * * Source: https://developers.openai.com/api/docs/pricing (April 2026). - Network accessline 542
* * Source: https://developers.openai.com/api/docs/pricing (April 2026). * Update when OpenAI repprices or new GPT-5.x SKUs ship. - Network accessline 543
* Source: https://developers.openai.com/api/docs/pricing (April 2026).
packages/processor/src/agents/codex-wrapper.sh
- Executable scriptline 1
#!/bin/sh
packages/processor/src/agents/pi-sdk.ts
- Executable scriptline 1
Executable file - Network accessline 68
const GATEWAY_BASE_URL = "https://ai-gateway.vercel.sh"; - Access to secretsline 313
[Credential-related source omitted] - Access to secretsline 318
[Credential-related source omitted] - Access to secretsline 319
[Credential-related source omitted] - Access to secretsline 320
[Credential-related source omitted] - Access to secretsline 321
[Credential-related source omitted] - Access to secretsline 322
[Credential-related source omitted] - Access to secretsline 339
[Credential-related source omitted] - Access to secretsline 342
[Credential-related source omitted] - Access to secretsline 448
[Credential-related source omitted]
packages/processor/src/agents/registry.ts
- Executable scriptline 1
Executable file
packages/processor/src/agents/shared.ts
- Executable scriptline 1
Executable file - Network accessline 224
* with the constants in `packages/deepsec/src/preflight.ts`. */ const GATEWAY_ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 225
*/ const GATEWAY_ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; const GATEWAY_OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; - Network accessline 226
const GATEWAY_ANTHROPIC_BASE_URL = "https://ai-gateway.vercel.sh"; - Network accessline 227
const GATEWAY_OPENAI_BASE_URL = "https://ai-gateway.vercel.sh/v1"; - Access to secretsline 236
[Credential-related source omitted] - Access to secretsline 241
[Credential-related source omitted] - Network accessline 261
// AI Gateway App Attribution (https://vercel.com/docs/ai-gateway/ecosystem/app-attribution): - Network accessline 277
export function attributionHeaders(): Record<string, string> { return { "http-referer": "https://deepsec.sh", - Network accessline 278
return { "http-referer": "https://deepsec.sh", "x-title": attributionTitle, - Network accessline 279
"http-referer": "https://deepsec.sh",
packages/processor/src/agents/types.ts
- Executable scriptline 1
Executable file
packages/processor/src/batch.ts
- Executable scriptline 1
Executable file
packages/processor/src/enrich.ts
packages/processor/src/index.ts
- Executable scriptline 1
Executable file
packages/processor/src/prompt/assemble.ts
- Executable scriptline 1
Executable file
packages/processor/src/prompt/core.ts
- Executable scriptline 1
Executable file
packages/processor/src/prompt/file-language.ts
- Executable scriptline 1
Executable file
packages/processor/src/prompt/highlights.ts
- Executable scriptline 1
Executable file - Network accessline 353
languages: JS_LANGS, bullets: [ "`export default { fetch(req, env, ctx) }` is the only entry — auth lives in `fetch`, no framework gates", - Network accessline 354
bullets: [ "`export default { fetch(req, env, ctx) }` is the only entry — auth lives in `fetch`, no framework gates", "`env.<BINDING>` exposes KV / R2 / D1 / secrets — review whether bindings are over-permissioned", - Network accessline 355
"`export default { fetch(req, env, ctx) }` is the only entry — auth lives in `fetch`, no framework gates", - Access to secretsline 770
[Credential-related source omitted] - Access to secretsline 886
[Credential-related source omitted]
packages/processor/src/prompt/index.ts
- Executable scriptline 1
Executable file
packages/processor/src/prompt/slug-notes.ts
- Executable scriptline 1
Executable file
packages/processor/src/reconcile.ts
- Executable scriptline 1
Executable file
packages/processor/src/setup-agent.ts
- Executable scriptline 1
Executable file
packages/processor/src/triage.ts
- Executable scriptline 1
Executable file
packages/processor/vitest.config.ts
- Executable scriptline 1
Executable file
packages/scanner/package.json
- Executable scriptline 1
Executable file
packages/scanner/src/__tests__/declarative-matcher.test.ts
- Executable scriptline 1
Executable file
packages/scanner/src/__tests__/detect-tech.test.ts
packages/scanner/src/__tests__/framework-matchers.test.ts
- Executable scriptline 1
Executable file
packages/scanner/src/__tests__/matcher-examples.test.ts
- Executable scriptline 1
Executable file
packages/scanner/src/__tests__/matchers.test.ts
- Executable scriptline 1
Executable file
packages/scanner/src/__tests__/scan-files.test.ts
- Executable scriptline 1
Executable file
packages/scanner/src/__tests__/windows-paths.test.ts
- Executable scriptline 1
Executable file
packages/scanner/src/declarative-matcher.ts
packages/scanner/src/detect-tech.ts
- Executable scriptline 1
Executable file
packages/scanner/src/index.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matcher-registry.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/agent-loop-no-cap.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/agent-tool-definition.ts
- Executable scriptline 1
Executable file - Dangerous shell operationline 26
`eval(userInput);`, - Network accessline 26
`eval(userInput);`, `import fs from "fs";\nfs.writeFile(path, data, () => {});`, `await fetch(url);`, - Network accessline 27
`import fs from "fs";\nfs.writeFile(path, data, () => {});`, `await fetch(url);`, `import { sandbox } from "sandbox";\nawait sandbox.runCode(code);`, - Network accessline 28
`await fetch(url);`,
packages/scanner/src/matchers/agentic-untrusted-prompt-input.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/algorithm-confusion.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/android-manifest-export.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/apex-rest-resource.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/auth-bypass.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/azure-function-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/cache-key-poisoning.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/cache-key-scope.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/clj-ring-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/connectrpc-handler-impl.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/cors-wildcard.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/cr-kemal-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/cron-secret-check.ts
packages/scanner/src/matchers/cross-tenant-id.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/crypto-usage.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dangerous-html.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dart-shelf-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/debug-endpoint.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dev-auth-bypass.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dockerfile-curl-pipe-unverified.ts
- Executable scriptline 1
Executable file - Network accessline 4
/** * Classic supply-chain pattern: `curl … | sh` / `curl … | tar -x` in a - Dangerous shell operationline 5
* Classic supply-chain pattern: `curl … | sh` / `curl … | tar -x` in a - Network accessline 5
* Classic supply-chain pattern: `curl … | sh` / `curl … | tar -x` in a - Network accessline 11
noiseTier: "precise" as const, slug: "dockerfile-curl-pipe-unverified", description: "RUN curl|wget piped to shell/tar without checksum verification", - Network accessline 12
slug: "dockerfile-curl-pipe-unverified", description: "RUN curl|wget piped to shell/tar without checksum verification", filePatterns: ["**/Dockerfile", "**/Dockerfile.*", "**/*.Dockerfile"], - Network accessline 13
description: "RUN curl|wget piped to shell/tar without checksum verification", - Network accessline 15
requires: { tech: ["docker"] }, examples: [ `RUN curl -fsSL https://example.com/install.sh | sh`, - Network accessline 16
examples: [ `RUN curl -fsSL https://example.com/install.sh | sh`, `RUN curl -L https://get.docker.com/ | bash`, - Dangerous shell operationline 17
`RUN curl -fsSL https://example.com/install.sh | sh`, - Network accessline 17
`RUN curl -fsSL https://example.com/install.sh | sh`, - Dangerous shell operationline 18
`RUN curl -L https://get.docker.com/ | bash`, - Network accessline 18
`RUN curl -L https://get.docker.com/ | bash`, - Dangerous shell operationline 19
`RUN wget -qO- https://example.com/install | sh`, - Network accessline 19
`RUN wget -qO- https://example.com/install | sh`, - Network accessline 20
`RUN curl -L https://example.com/release.tar.gz | tar -xz`, - Network accessline 21
`RUN wget -O- https://example.com/file.zip | unzip -`, - Network accessline 63
lineNumbers: hitLines, snippet: snippets[0], matchedPattern: "curl|wget | sh/tar with no checksum check", - Network accessline 64
snippet: snippets[0], matchedPattern: "curl|wget | sh/tar with no checksum check", }; - Dangerous shell operationline 65
matchedPattern: "curl|wget | sh/tar with no checksum check", - Network accessline 65
matchedPattern: "curl|wget | sh/tar with no checksum check",
packages/scanner/src/matchers/dockerfile-from-mutable-tag.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dockerfile-run-as-root.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dotnet-aspnet-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dotnet-azure-function.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dotnet-minimal-api.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dotnet-razor-pages.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/dotnet-sql-raw.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/drizzle-mass-assignment.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/drizzle-raw-sql.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/env-exposure.ts
- Executable scriptline 1
Executable file - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted]
packages/scanner/src/matchers/env-var-as-bool.ts
packages/scanner/src/matchers/erl-cowboy-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/error-message-leak.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/event-handler-mismatch.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/ex-phoenix-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/expensive-api-abuse.ts
- Executable scriptline 1
Executable file - Network accessline 70
}`, `export async function POST() { await fetch("https://ai-gateway.vercel.sh/v1/chat", { method: "POST" }); - Network accessline 71
`export async function POST() { await fetch("https://ai-gateway.vercel.sh/v1/chat", { method: "POST" }); return new Response("ok"); - Network accessline 72
await fetch("https://ai-gateway.vercel.sh/v1/chat", { method: "POST" }); - Network accessline 74
}`, `export async function POST() { await fetch("https://api.openai.com/v1/chat/completions", { method: "POST" }); - Network accessline 75
`export async function POST() { await fetch("https://api.openai.com/v1/chat/completions", { method: "POST" }); return new Response("ok"); - Network accessline 76
await fetch("https://api.openai.com/v1/chat/completions", { method: "POST" }); - Network accessline 78
}`, `export async function POST() { await fetch("https://api.openai.com/v1/completions", { method: "POST" }); - Network accessline 79
`export async function POST() { await fetch("https://api.openai.com/v1/completions", { method: "POST" }); return new Response("ok"); - Network accessline 80
await fetch("https://api.openai.com/v1/completions", { method: "POST" }); - Network accessline 82
}`, `export async function POST() { await fetch("https://api.openai.com/v1/embeddings", { method: "POST" }); - Network accessline 83
`export async function POST() { await fetch("https://api.openai.com/v1/embeddings", { method: "POST" }); return new Response("ok"); - Network accessline 84
await fetch("https://api.openai.com/v1/embeddings", { method: "POST" }); - Network accessline 86
}`, `export async function POST() { await fetch("https://api.openai.com/v1/images/generations", { method: "POST" }); - Network accessline 87
`export async function POST() { await fetch("https://api.openai.com/v1/images/generations", { method: "POST" }); return new Response("ok"); - Network accessline 88
await fetch("https://api.openai.com/v1/images/generations", { method: "POST" });
packages/scanner/src/matchers/fs-write-symlink-boundary.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/gcp-cloud-function.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/git-provider-url-injection.ts
- Executable scriptline 1
Executable file - Network accessline 9
filePatterns: ["**/*.{ts,tsx,js,jsx}"], examples: [ `const url = \`https://api.github.com/repos/\${owner}/\${repo}\`;`, - Network accessline 10
examples: [ `const url = \`https://api.github.com/repos/\${owner}/\${repo}\`;`, `await fetch(\`https://api.github.com/orgs/\${org}/members\`);`, - Network accessline 11
`const url = \`https://api.github.com/repos/\${owner}/\${repo}\`;`, `await fetch(\`https://api.github.com/orgs/\${org}/members\`);`, `const link = \`https://github.com/\${user}/\${repo}/commits\`;`, - Network accessline 12
`await fetch(\`https://api.github.com/orgs/\${org}/members\`);`, - Network accessline 13
`const link = \`https://github.com/\${user}/\${repo}/commits\`;`, - Network accessline 14
`const url = \`https://gitlab.com/api/v4/projects/\${id}\`;`, - Network accessline 15
`const url = \`https://bitbucket.org/api/2.0/repositories/\${slug}\`;`, - Network accessline 16
`const u = \`https://git.example.com/repos/\${slug}\`;`,
packages/scanner/src/matchers/github-workflow-security.ts
- Executable scriptline 1
Executable file - Network accessline 38
[Credential-related source omitted] - Network accessline 39
` - run: |\n echo \${{ github.event.pull_request.head.ref }}`, ` - run: curl -fsSL https://example.com/install.sh | sh`, ], - Dangerous shell operationline 40
` - run: curl -fsSL https://example.com/install.sh | sh`, - Network accessline 40
` - run: curl -fsSL https://example.com/install.sh | sh`, - Network accessline 65
[Credential-related source omitted] - Network accessline 66
{ regex: /\brun\s*:\s*\|.*\$\{\{[^}]*\}\}/s, label: "run block interpolating expression" }, { regex: /\bcurl\s+[^|]*\|\s*(?:sh|bash)\b/, label: "curl | sh in workflow" }, ]; - Dangerous shell operationline 67
{ regex: /\bcurl\s+[^|]*\|\s*(?:sh|bash)\b/, label: "curl | sh in workflow" }, - Network accessline 67
{ regex: /\bcurl\s+[^|]*\|\s*(?:sh|bash)\b/, label: "curl | sh in workflow" },
packages/scanner/src/matchers/go-buffalo-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-chi-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-cobra-command.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-command-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-echo-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-embed-asset.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-fiber-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-gin-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-gorilla-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-http-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-sql-raw.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/go-ssrf.ts
- Executable scriptline 1
Executable file - Network accessline 12
`resp, err := http.Post(host + "/api", "application/json", body)`, `resp, err := http.Head("https://" + target)`, `req, err := http.NewRequest("GET", fmt.Sprintf("https://%s/api", host), nil)`, - Network accessline 13
`resp, err := http.Head("https://" + target)`, `req, err := http.NewRequest("GET", fmt.Sprintf("https://%s/api", host), nil)`, `req, err := http.NewRequest("POST", baseURL + path, body)`, - Network accessline 14
`req, err := http.NewRequest("GET", fmt.Sprintf("https://%s/api", host), nil)`, - Network accessline 15
`req, err := http.NewRequest("POST", baseURL + path, body)`, `u, err := url.Parse(scheme + "://" + host)`, `endpoint := fmt.Sprintf("https://api.example.com/users/%s", userID)`, - Network accessline 16
`u, err := url.Parse(scheme + "://" + host)`, `endpoint := fmt.Sprintf("https://api.example.com/users/%s", userID)`, ], - Network accessline 17
`endpoint := fmt.Sprintf("https://api.example.com/users/%s", userID)`,
packages/scanner/src/matchers/iam-permissions.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/index.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/insecure-crypto.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/ios-url-scheme.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-astro-endpoint.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-bullmq-processor.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-bun-serve.ts
- Executable scriptline 1
Executable file - Network accessline 9
requires: { tech: ["bun"] }, examples: [ `Bun.serve({\n fetch(req) { return new Response("hi") }\n})`, - Network accessline 10
examples: [ `Bun.serve({\n fetch(req) { return new Response("hi") }\n})`, `Bun.serve({ port: 3000, async fetch(req) { return new Response() } })`, - Network accessline 11
`Bun.serve({\n fetch(req) { return new Response("hi") }\n})`, - Network accessline 12
`Bun.serve({ port: 3000, async fetch(req) { return new Response() } })`, - Network accessline 13
`async fetch(req) { return new Response("ok") }`, - Network accessline 14
`fetch(request, server) { return new Response() }`, - Network accessline 24
"js-bun-serve", [ { regex: /\bBun\.serve\s*\(\s*\{/, label: "Bun.serve({ fetch(req) ... })" }, - Network accessline 25
[ { regex: /\bBun\.serve\s*\(\s*\{/, label: "Bun.serve({ fetch(req) ... })" }, { - Network accessline 26
{ regex: /\bBun\.serve\s*\(\s*\{/, label: "Bun.serve({ fetch(req) ... })" }, - Network accessline 27
{ regex: /(?:async\s+)?fetch\s*\(\s*req(?:uest)?\s*[,)]/, label: "fetch(req) handler body", - Network accessline 28
regex: /(?:async\s+)?fetch\s*\(\s*req(?:uest)?\s*[,)]/, label: "fetch(req) handler body", }, - Network accessline 29
label: "fetch(req) handler body",
packages/scanner/src/matchers/js-deno-route.ts
- Executable scriptline 1
Executable file - Network accessline 15
`router.use(authMiddleware)`, `router.delete("/u/:id", removeUser)`, `import { Application, Router } from "https://deno.land/x/oak/mod.ts";`, - Network accessline 16
`router.delete("/u/:id", removeUser)`, `import { Application, Router } from "https://deno.land/x/oak/mod.ts";`, `const url = ctx.request.url;`, - Network accessline 17
`import { Application, Router } from "https://deno.land/x/oak/mod.ts";`,
packages/scanner/src/matchers/js-express-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-fastify-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-graphql-resolver.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-hapi-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-hono-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-koa-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nestjs-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-catch-all-route-auth.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-catchall-router.ts
- Executable scriptline 1
Executable file - Network accessline 22
examples: [ `import { Elysia } from 'elysia';\nconst app = new Elysia();\nexport const GET = app.handle;`, `import { Hono } from 'hono';\nconst app = new Hono();\nexport const GET = (req) => app.fetch(req);`, - Network accessline 23
`import { Elysia } from 'elysia';\nconst app = new Elysia();\nexport const GET = app.handle;`, `import { Hono } from 'hono';\nconst app = new Hono();\nexport const GET = (req) => app.fetch(req);`, `import express from 'express';\nco - Network accessline 24
`import { Hono } from 'hono';\nconst app = new Hono();\nexport const GET = (req) => app.fetch(req);`,
packages/scanner/src/matchers/js-nextjs-edge-sandbox.ts
packages/scanner/src/matchers/js-nextjs-fw-server-action.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-image-optimizer.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-internal-header.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-middleware-only-auth.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-middleware.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-page-data-fetch.ts
- Executable scriptline 1
Executable file - Network accessline 10
requires: { tech: ["nextjs"] }, examples: [ `export default async function Page({ searchParams }) {\n const id = searchParams.get('id');\n const data = await fetch('/api/x?id=' + id);\n return null\n}`, - Network accessline 11
examples: [ `export default async function Page({ searchParams }) {\n const id = searchParams.get('id');\n const data = await fetch('/api/x?id=' + id);\n return null\n}`, `export default async function Page({ params }) {\n const - Network accessline 12
`export default async function Page({ searchParams }) {\n const id = searchParams.get('id');\n const data = await fetch('/api/x?id=' + id);\n return null\n}`, - Network accessline 13
`export default async function Page({ params }) {\n const r = await fetch('/api/users/' + params.id);\n return null\n}`, - Network accessline 14
`export default async function Page({ searchParams }) {\n const q = searchParams['q'];\n const data = await fetchApi('/search?q=' + q);\n return null\n}`, `export async function getServerSideProps(ctx) {\n const data = await fetch(' - Network accessline 15
`export async function getServerSideProps(ctx) {\n const data = await fetch('/api/foo?id=' + ctx.query.id);\n return { props: { data, query: ctx.params.id } }\n}`, - Network accessline 16
`export async function getStaticProps(ctx) {\n const data = await fetch('/api/items/' + ctx.params.slug);\n return { props: { data } }\n}`,
packages/scanner/src/matchers/js-nextjs-page-without-auth-fetch.ts
- Executable scriptline 1
Executable file - Network accessline 10
requires: { tech: ["nextjs"] }, examples: [ `export default async function Page({ params }) {\n const data = await fetch('/api/orders/' + params.id);\n return null\n}`, - Network accessline 11
examples: [ `export default async function Page({ params }) {\n const data = await fetch('/api/orders/' + params.id);\n return null\n}`, `export default async function Page({ params }) {\n const r = await fetchApi('/users/' + par - Network accessline 12
`export default async function Page({ params }) {\n const data = await fetch('/api/orders/' + params.id);\n return null\n}`, - Network accessline 13
`export default async function Page({ params }) {\n const r = await fetchApi('/users/' + params.userId);\n return null\n}`, `export default async function Page({ params }) {\n const session = await getServerSession();\n const r = aw - Network accessline 14
`export default async function Page({ params }) {\n const session = await getServerSession();\n const r = await fetch('/api/x/' + params.id);\n return null\n}`, - Network accessline 15
`export default async function Page({ params }) {\n const session = await auth();\n const data = await fetch('/api/items/' + params.id);\n return null\n}`, - Network accessline 16
`export default async function Page({ params }) {\n await requireAuth();\n const r = await fetch('/api/orgs/' + params.orgId);\n return null\n}`,
packages/scanner/src/matchers/js-nextjs-route-handlers.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-server-action-no-auth.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-server-action.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-server-actions.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nextjs-untrusted-fetch.ts
- Executable scriptline 1
Executable file - Network accessline 4
/** * Framework code where a `fetch(...)` call's URL originates from a request - Network accessline 5
* Framework code where a `fetch(...)` call's URL originates from a request - Network accessline 19
requires: { tech: ["nextjs"] }, examples: [ `const url = req.url;\nconst res = await fetch(url);`, - Network accessline 20
examples: [ `const url = req.url;\nconst res = await fetch(url);`, `const target = request.headers.get('x-target');\nconst data = await fetch(target);`, - Network accessline 21
`const url = req.url;\nconst res = await fetch(url);`, - Network accessline 22
`const target = request.headers.get('x-target');\nconst data = await fetch(target);`, - Network accessline 23
`const u = new URL(req.url);\nawait fetch(u.searchParams.get('href'));`, - Network accessline 24
`const upstream = req.query.upstream;\nawait globalThis.fetch(upstream);`, - Network accessline 25
`const path = request.nextUrl.searchParams.get('path');\nconst r = await fetch(path);`, - Network accessline 26
`const meta = getRequestMeta(req, 'origin');\nconst r = await fetch(meta + '/api');`, - Network accessline 27
`const cookieVal = request.cookies.get('redirect')?.value;\nconst r = await fetch(cookieVal);`,
packages/scanner/src/matchers/js-nextjs-use-server-export.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nosql-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-nuxt-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-react-unsafe-json-in-html.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-remix-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-socketio-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-solidstart-action.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-sql-raw.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-sveltekit-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/js-workers-fetch.ts
- Executable scriptline 1
Executable file - Network accessline 9
requires: { tech: ["workers"] }, examples: [ `export default { async fetch(req, env, ctx) { return new Response("ok") } }`, - Network accessline 10
examples: [ `export default { async fetch(req, env, ctx) { return new Response("ok") } }`, `export default { fetch(request, env, ctx) { return new Response() } }`, - Network accessline 11
`export default { async fetch(req, env, ctx) { return new Response("ok") } }`, - Network accessline 12
`export default { fetch(request, env, ctx) { return new Response() } }`, - Access to secretsline 17
[Credential-related source omitted] - Network accessline 28
{ regex: /export\s+default\s*\{\s*(?:async\s+)?fetch\s*\(/, label: "Workers default export { fetch(req, env, ctx) }", - Network accessline 29
regex: /export\s+default\s*\{\s*(?:async\s+)?fetch\s*\(/, label: "Workers default export { fetch(req, env, ctx) }", }, - Network accessline 30
label: "Workers default export { fetch(req, env, ctx) }",
packages/scanner/src/matchers/jvm-jaxrs-resource.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/jvm-ktor-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/jvm-micronaut-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/jvm-spring-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/jvm-sql-raw.ts
packages/scanner/src/matchers/jwt-handling.ts
packages/scanner/src/matchers/k8s-secret-reference.ts
packages/scanner/src/matchers/k8s-secrets-init-container.ts
packages/scanner/src/matchers/lambda-aws-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/lua-crypto-weakness.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/lua-ngx-exec.ts
- Executable scriptline 1
Executable file - Network accessline 9
examples: [ `ngx.exec("/internal/" .. user_path)`, `ngx.redirect("https://example.com/" .. target)`, - Network accessline 10
`ngx.exec("/internal/" .. user_path)`, `ngx.redirect("https://example.com/" .. target)`, `os.execute("rm -rf " .. dir)`, - Network accessline 11
`ngx.redirect("https://example.com/" .. target)`, - Dangerous shell operationline 12
`os.execute("rm -rf " .. dir)`,
packages/scanner/src/matchers/lua-regex-bypass.ts
- Executable scriptline 1
Executable file - Network accessline 8
filePatterns: ["**/*.lua"], examples: [ `local m = ngx.re.match(host, "^https://api\\\\.example\\\\.com")`, - Network accessline 9
examples: [ `local m = ngx.re.match(host, "^https://api\\\\.example\\\\.com")`, `if string.match(target, "^https://trusted") then end`, - Network accessline 10
`local m = ngx.re.match(host, "^https://api\\\\.example\\\\.com")`, - Network accessline 11
`if string.match(target, "^https://trusted") then end`,
packages/scanner/src/matchers/lua-shared-dict-poisoning.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/lua-string-concat-url.ts
- Executable scriptline 1
Executable file - Network accessline 8
filePatterns: ["**/*.lua"], examples: [ `local url = "https://api.example.com/" .. user_path`, - Network accessline 9
examples: [ `local url = "https://api.example.com/" .. user_path`, `local target = "http://internal.svc/v1/" .. ngx.var.arg_id`, - Network accessline 10
`local url = "https://api.example.com/" .. user_path`, - Network accessline 11
`local target = "http://internal.svc/v1/" .. ngx.var.arg_id`, - Network accessline 12
`local endpoint = path .. "https://upstream.local/data"`, - Network accessline 13
`local res = ngx.location.capture("/proxy/" .. backend_id)`, `request_uri = "/api/" .. tenant_id .. "/users"`, `local u = base .. "https://service" .. suffix`, - Network accessline 14
`request_uri = "/api/" .. tenant_id .. "/users"`, `local u = base .. "https://service" .. suffix`, ], - Network accessline 15
`local u = base .. "https://service" .. suffix`,
packages/scanner/src/matchers/mcp-tool-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/missing-auth.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/missing-await.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/non-atomic-operation.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/non-atomic-read-delete.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/oauth-flow.ts
- Executable scriptline 1
Executable file - Network accessline 20
`params.set("code_verifier", verifier);`, `const code_challenge = sha256(code_verifier);`, `const u = "https://idp/cb?state=" + s + "&redirect=" + r;`, - Network accessline 21
`const code_challenge = sha256(code_verifier);`, `const u = "https://idp/cb?state=" + s + "&redirect=" + r;`, `// redirect handler with state= param parsing`, - Network accessline 22
`const u = "https://idp/cb?state=" + s + "&redirect=" + r;`, - Network accessline 23
`// redirect handler with state= param parsing`, `const url = "https://app/cb?code=" + c;`, `if (qs.includes("&code=")) handle();`, - Network accessline 24
`const url = "https://app/cb?code=" + c;`, - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted]
packages/scanner/src/matchers/object-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/open-redirect.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/path-traversal.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-cakephp-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-codeigniter-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-drupal-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-laravel-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-magento-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-slim-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-sql-raw.ts
packages/scanner/src/matchers/php-symfony-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-wordpress-rest.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/php-yii-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/postmessage-origin.ts
- Executable scriptline 1
Executable file - Network accessline 17
`frame.onmessage = function (e) { dispatch(e.data); };`, `addEventListener("message", function (event) { if (event.origin !== "https://trusted.example") return; - Network accessline 18
`addEventListener("message", function (event) { if (event.origin !== "https://trusted.example") return; doStuff(event.data); - Network accessline 19
if (event.origin !== "https://trusted.example") return;
packages/scanner/src/matchers/prisma-raw-sql.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/process-env-access.ts
packages/scanner/src/matchers/prompt-leaks-system-prompt.ts
- Executable scriptline 1
Executable file - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted]
packages/scanner/src/matchers/proto-rpc-surface.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/public-endpoint.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-aiohttp-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-airflow-dag.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-bottle-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-celery-task.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-django-view.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-falcon-resource.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-fastapi-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-flask-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-nosql-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-sanic-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-sql-raw.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-starlette-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/py-tornado-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rate-limit-bypass.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rb-grape-endpoint.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rb-hanami-action.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rb-rails-controller.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rb-roda-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rb-sinatra-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rb-sql-raw.ts
- Executable scriptline 1
Executable file - Network accessline 20
`ActiveRecord::Base.connection.execute("UPDATE users SET role = '#{role}'")`, `DB[:users].where("name = '#{q}'")`, `DB.fetch("SELECT * FROM t WHERE col = '#{val}'")`, - Network accessline 21
`DB[:users].where("name = '#{q}'")`, `DB.fetch("SELECT * FROM t WHERE col = '#{val}'")`, `Sequel.lit("name = '#{user_input}'")`, - Network accessline 22
`DB.fetch("SELECT * FROM t WHERE col = '#{val}'")`,
packages/scanner/src/matchers/rce.ts
packages/scanner/src/matchers/response-header-leak.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-actix-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-axum-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-lambda-runtime.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-poem-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-rocket-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-sql-raw.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-tide-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-tonic-grpc.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/rs-warp-filter.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/sandbox-runtime-script.ts
- Executable scriptline 1
Executable file - Network accessline 38
`#!/bin/bash\ngit config --global credential.helper store`, `#!/bin/bash\necho $SANDBOX_ID\necho $CONTAINER_NAME`, `#!/bin/bash\ncurl -fsSL https://example.com/install.sh | bash`, - Network accessline 39
`#!/bin/bash\necho $SANDBOX_ID\necho $CONTAINER_NAME`, `#!/bin/bash\ncurl -fsSL https://example.com/install.sh | bash`, `#!/bin/bash\nnohup ./daemon &`, - Network accessline 40
`#!/bin/bash\ncurl -fsSL https://example.com/install.sh | bash`, - Network accessline 65
label: "TARGET_/SANDBOX_/CONTAINER_ env", }, { regex: /\bcurl\b[^|]*\|[\s]*(?:sh|bash)/, label: "curl | sh pattern" }, - Network accessline 66
}, { regex: /\bcurl\b[^|]*\|[\s]*(?:sh|bash)/, label: "curl | sh pattern" }, { regex: /\b(?:nohup|&\s*$|disown)\b/, label: "background daemon launch" }, - Dangerous shell operationline 67
{ regex: /\bcurl\b[^|]*\|[\s]*(?:sh|bash)/, label: "curl | sh pattern" }, - Network accessline 67
{ regex: /\bcurl\b[^|]*\|[\s]*(?:sh|bash)/, label: "curl | sh pattern" },
packages/scanner/src/matchers/secret-env-var.ts
- Executable scriptline 1
Executable file - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted]
packages/scanner/src/matchers/secret-in-fallback.ts
- Executable scriptline 1
Executable file - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted]
packages/scanner/src/matchers/secret-in-log.ts
packages/scanner/src/matchers/secrets-exposure.ts
packages/scanner/src/matchers/secrets-plaintext-exposure.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/security-behind-flag.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/sensitive-data-in-traces.ts
packages/scanner/src/matchers/service-entry-point.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/session-cookie-config.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/slack-signing-verification.ts
packages/scanner/src/matchers/snowflake-bigquery-sql.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/soql-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/spread-operator-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/sql-injection.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/ssrf.ts
- Executable scriptline 1
Executable file - Network accessline 11
filePatterns: ["**/*.{ts,tsx,js,jsx}"], examples: [ `fetch(req.body.url);`, - Network accessline 12
examples: [ `fetch(req.body.url);`, `fetch(query.target);`, - Network accessline 13
`fetch(req.body.url);`, - Network accessline 14
`fetch(query.target);`, - Network accessline 15
`fetch(searchParams.get('u'));`, - Network accessline 16
`fetch(input.url);`, - Network accessline 22
`superagent(ctx.url);`, `https.get(req.query.target);`, "https.request(`https://api/${req.body.host}`);", - Network accessline 23
`https.get(req.query.target);`, "https.request(`https://api/${req.body.host}`);", `page.goto(req.body.url);`, - Network accessline 24
"https.request(`https://api/${req.body.host}`);", - Network accessline 26
`browser.goto(params.target);`, `page.setContent(req.body.html);`, `fetch(headers().get('x-target'));`, - Network accessline 27
`page.setContent(req.body.html);`, `fetch(headers().get('x-target'));`, `fetch(cookies().get('redirect')?.value);`, - Network accessline 28
`fetch(headers().get('x-target'));`, - Network accessline 29
`fetch(cookies().get('redirect')?.value);`, - Network accessline 31
`new URL(req.query.target);`, `new URL(nextUrl.searchParams.get('href'));`, "fetch(`${userBase}/items`);", - Network accessline 32
`new URL(nextUrl.searchParams.get('href'));`, "fetch(`${userBase}/items`);", "const target = `https://${req.body.host}`;", - Network accessline 33
"fetch(`${userBase}/items`);", - Network accessline 34
"const target = `https://${req.body.host}`;", - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted]
packages/scanner/src/matchers/streaming-endpoint.ts
- Executable scriptline 1
Executable file - Network accessline 25
`const res = await openai.chat.completions.create({ model: "gpt-4", stream: true });`, `const r = await client.chat.completions.create({ model, messages, stream: true });`, `fetch("/api/chat", { method: "POST" });`, - Network accessline 26
`const r = await client.chat.completions.create({ model, messages, stream: true });`, `fetch("/api/chat", { method: "POST" });`, `app.post("/api/completion", handler);`, - Network accessline 27
`fetch("/api/chat", { method: "POST" });`, - Network accessline 28
`app.post("/api/completion", handler);`, `await fetch("/api/generate", { method: "POST" });`, ], - Network accessline 29
`await fetch("/api/generate", { method: "POST" });`,
packages/scanner/src/matchers/swift-vapor-route.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/test-header-bypass.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/tf-encryption-missing.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/tf-iac-surface.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/tf-iam-wildcard.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/tf-module-unpinned.ts
- Executable scriptline 1
Executable file - Network accessline 18
examples: [ `module "vpc" {\n source = "github.com/terraform-aws-modules/terraform-aws-vpc"\n}`, `module "k8s" {\n source = "git::https://github.com/some-org/k8s-module.git"\n}`, - Network accessline 19
`module "vpc" {\n source = "github.com/terraform-aws-modules/terraform-aws-vpc"\n}`, `module "k8s" {\n source = "git::https://github.com/some-org/k8s-module.git"\n}`, `module "iam" {\n source = "git::ssh://git@github.com/org/iam. - Network accessline 20
`module "k8s" {\n source = "git::https://github.com/some-org/k8s-module.git"\n}`, - Network accessline 21
`module "iam" {\n source = "git::ssh://git@github.com/org/iam.git?ref=main"\n}`, `module "registry" {\n source = "terraform-aws-modules/eks/aws"\n}`, `module "external" {\n source = "https://example.com/modules/foo.tar.gz"\n}`, - Network accessline 22
`module "registry" {\n source = "terraform-aws-modules/eks/aws"\n}`, `module "external" {\n source = "https://example.com/modules/foo.tar.gz"\n}`, ], - Network accessline 23
`module "external" {\n source = "https://example.com/modules/foo.tar.gz"\n}`,
packages/scanner/src/matchers/tf-public-ingress.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/tf-secret-in-data.ts
packages/scanner/src/matchers/trpc-public-procedure.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/unix-socket-listener.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/unsafe-deserialization.ts
packages/scanner/src/matchers/unsafe-redirect.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/untrusted-redirect-following.ts
- Executable scriptline 1
Executable file - Network accessline 4
/** * Server-side fetch following redirects across hosts. Common SSRF bypass: * - Host validation runs against the request URL ("https://allowed.com/...") - Network accessline 5
* Server-side fetch following redirects across hosts. Common SSRF bypass: * - Host validation runs against the request URL ("https://allowed.com/...") * - The fetch follows a 30x to "https://169.254.169.254/...", "http://localhost:808 - Network accessline 6
* - Host validation runs against the request URL ("https://allowed.com/...") * - The fetch follows a 30x to "https://169.254.169.254/...", "http://localhost:8080/..." * - Now you've reached cloud metadata or internal services - Network accessline 7
* - The fetch follows a 30x to "https://169.254.169.254/...", "http://localhost:8080/..." - Network accessline 14
* - Block fetches to private IP ranges entirely (DNS resolution check) * * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side - Network accessline 15
* * Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side * files where the URL likely derives from caller input. Also flags - Network accessline 16
* Flags `fetch(url)` / `axios.get(url)` / `got(url)` calls in server-side - Network accessline 25
filePatterns: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.mjs"], examples: [ `await fetch(targetUrl, { redirect: "follow" });`, - Network accessline 26
examples: [ `await fetch(targetUrl, { redirect: "follow" });`, `await fetch(callbackUrl);`, - Network accessline 27
`await fetch(targetUrl, { redirect: "follow" });`, - Network accessline 28
`await fetch(callbackUrl);`, - Network accessline 29
`const res = await fetch(redirectUrl);`, - Network accessline 30
`const r = await fetch(webhookUrl);`, - Network accessline 34
`await got(imageUrl); got.get(imageUrl);`, `await fetch(fetchUrl, { method: "GET" });`, - Network accessline 35
got.get(imageUrl);`, `await fetch(fetchUrl, { method: "GET" });`, `await fetch(returnTo, { method: "GET" });`, - Network accessline 36
`await fetch(fetchUrl, { method: "GET" });`, - Network accessline 37
`await fetch(returnTo, { method: "GET" });`, - Network accessline 71
// fetch(url) call where `url` is a caller-style variable - Network accessline 85
lineNumbers: [i + 1], snippet: lines.slice(start, end).join("\n"), matchedPattern: `fetch(${m[1].slice(0, 40).trim()}) — default redirect: follow + caller-style URL`, - Network accessline 86
snippet: lines.slice(start, end).join("\n"), matchedPattern: `fetch(${m[1].slice(0, 40).trim()}) — default redirect: follow + caller-style URL`, }); - Network accessline 87
matchedPattern: `fetch(${m[1].slice(0, 40).trim()}) — default redirect: follow + caller-style URL`,
packages/scanner/src/matchers/unverified-lookup.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/url-regex-validation.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/utils.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/webhook-handler.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/xss.ts
- Executable scriptline 1
Executable file
packages/scanner/src/matchers/zod-passthrough-mass-assignment.ts
- Executable scriptline 1
Executable file
packages/scanner/src/types.ts
- Executable scriptline 1
Executable file
packages/scanner/vitest.config.ts
- Executable scriptline 1
Executable file
packages/website/.gitignore
- Network accessline 1
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
packages/website/README.md
- Network accessline 1
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). - Network accessline 17
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - Network accessline 21
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. - Network accessline 27
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. - Network accessline 28
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - Network accessline 30
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! - Network accessline 34
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - Network accessline 36
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
packages/website/app/api/search/route.ts
- Executable scriptline 1
Executable file
packages/website/app/docs/[...slug]/page.tsx
- Executable scriptline 1
Executable file - Network accessline 19
if (path.startsWith("../")) { return `https://github.com/${github.owner}/${github.repo}/blob/main/${path.replace(/^(\.\.\/)+/, "")}${suffix}`; - Network accessline 20
return `https://github.com/${github.owner}/${github.repo}/blob/main/${path.replace(/^(\.\.\/)+/, "")}${suffix}`;
packages/website/app/docs/layout.tsx
- Executable scriptline 1
Executable file
packages/website/app/docs/page.tsx
- Executable scriptline 1
Executable file
packages/website/app/layout.tsx
- Executable scriptline 1
Executable file
packages/website/app/page.tsx
- Executable scriptline 1
Executable file
packages/website/app/rss.xml/route.ts
- Executable scriptline 1
Executable file
packages/website/components/geistdocs/mdx-components.tsx
- Executable scriptline 1
Executable file
packages/website/components/geistdocs/provider.tsx
- Executable scriptline 1
Executable file
packages/website/components/run-command.tsx
- Executable scriptline 1
Executable file
packages/website/eslint.config.mjs
- Executable scriptline 1
Executable file
packages/website/lib/geistdocs/config.tsx
- Executable scriptline 1
Executable file - Network accessline 16
{ label: "GitHub", href: `https://github.com/${github.owner}/${github.repo}`, - Network accessline 17
label: "GitHub", href: `https://github.com/${github.owner}/${github.repo}`, external: true, - Network accessline 18
href: `https://github.com/${github.owner}/${github.repo}`,
packages/website/lib/geistdocs/fonts.ts
- Executable scriptline 1
Executable file
packages/website/lib/geistdocs/source.ts
- Executable scriptline 1
Executable file
packages/website/next.config.ts
- Executable scriptline 1
Executable file - Network accessline 22
source: "/", has: [{ type: "host", value: "deepsec.sh" }], destination: "https://vercel.com/oss/deepsec", - Network accessline 23
has: [{ type: "host", value: "deepsec.sh" }], destination: "https://vercel.com/oss/deepsec", permanent: false, - Network accessline 24
destination: "https://vercel.com/oss/deepsec",
packages/website/package.json
- Executable scriptline 1
Executable file
packages/website/postcss.config.mjs
- Executable scriptline 1
Executable file
packages/website/public/file.svg
- Network accessline 1
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9
packages/website/public/globe.svg
- Network accessline 1
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0
packages/website/public/next.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6
packages/website/public/vercel.svg
- Network accessline 1
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
packages/website/public/window.svg
- Network accessline 1
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.7
packages/website/source.config.ts
- Executable scriptline 1
Executable file
samples/webapp/deepsec.config.ts
- Executable scriptline 1
Executable file - Network accessline 19
id: "webapp", root: "./your-app", githubUrl: "https://github.com/acme/webapp/blob/main", - Network accessline 20
root: "./your-app", githubUrl: "https://github.com/acme/webapp/blob/main", infoMarkdown: fs.readFileSync(path.join(here, "INFO.md"), "utf-8"), - Network accessline 21
githubUrl: "https://github.com/acme/webapp/blob/main",
samples/webapp/matchers/webapp-debug-flag.ts
- Executable scriptline 1
Executable file
samples/webapp/matchers/webapp-route-no-rate-limit.ts
- Executable scriptline 1
Executable file
samples/webapp/package.json
- Executable scriptline 1
Executable file
vitest.workspace.ts
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of documentation.deepsec/README.md:3Low confidence
- Network access in prose of documentation.deepsec/README.md:137Low confidence
- Network access in prose of documentation.deepsec/README.md:138Low confidence
- Access to secrets in prose of documentation.deepsec/data/deepsec/INFO.md:64Low confidence
- Access to secrets in prose of documentation.deepsec/data/deepsec/INFO.md:65Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored value.deepsec/data/deepsec/INFO.md:78Low confidence
- Executable script in code of a file that runs.deepsec/deepsec.config.ts:1High confidence
- Executable script in code of a file that runs.deepsec/matchers/archive-extraction-untrusted.ts:1High confidence
- Executable script in code of a file that runs.deepsec/package.json:1High confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:10Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:12Low confidence
- Network access in prose of documentationCONTRIBUTING.md:128Low confidence
- Network access in prose of documentationREADME.md:3Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:13Low confidence
- Network access in prose of documentationREADME.md:14Low confidence
- Network access in prose of documentationREADME.md:15Low confidence
- Network access in prose of documentationREADME.md:16Low confidence
- Network access in prose of documentationREADME.md:17Low confidence
- Network access in prose of documentationREADME.md:59Low confidence
- Network access in prose of documentationREADME.md:70Low confidence
- Network access in prose of documentationREADME.md:71Low confidence
- Network access in prose of documentationREADME.md:72Low confidence
- Network access in prose of documentationREADME.md:73Low confidence
- Network access in prose of documentationREADME.md:74Low confidence
- Network access in prose of documentationREADME.md:75Low confidence
- Network access in prose of documentationREADME.md:76Low confidence
- Network access in prose of documentationREADME.md:77Low confidence
- Network access in prose of documentationREADME.md:78Low confidence
- Network access in prose of documentationREADME.md:79Low confidence
- Network access in prose of documentationREADME.md:80Low confidence
- Network access in prose of documentationREADME.md:81Low confidence
- Network access in prose of documentationREADME.md:82Low confidence
- Network access in prose of documentationREADME.md:91Low confidence
- Network access in prose of documentationREADME.md:92Low confidence
- Network access in prose of documentationREADME.md:93Low confidence
- Network access in prose of documentationREADME.md:103Low confidence
- Network access in prose of documentationdocs/architecture.md:157Low confidence
- Network access in prose of documentationdocs/architecture.md:158Low confidence
- Network access in code of documentationdocs/configuration.md:15Low confidence
- Network access in code of documentationdocs/configuration.md:16Low confidence
- Network access in code of documentationdocs/configuration.md:17Low confidence
- Network access in prose of documentationdocs/configuration.md:23Low confidence
- Network access in prose of documentationdocs/configuration.md:25Low confidence
- Access to secrets in code of documentationdocs/configuration.md:46Low confidence
- Network access in code of documentationdocs/configuration.md:52Low confidence
- Network access in code of documentationdocs/configuration.md:53Low confidence
- Network access in code of documentationdocs/configuration.md:54Low confidence
- Network access in code of documentationdocs/configuration.md:60Low confidence
- Network access in code of documentationdocs/configuration.md:61Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path CLAUDE.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest .deepsec/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/vercel-labs-deepsec/)