⚠️ This snapshot is over 30 days old — treat the grade as stale until the next refresh. Re-scan locally to verify.
Trust Card · Static snapshot
stripe__agent-toolkit D
40/100 · 10 findings (0 critical) · scope excessive · Ranked #45 of 53 scanned.
Scanned 2026-09-09 · engine v0.1.0 (8 regex rules, OWASP-mapped) · upstream stripe/agent-toolkit @ 12f4881 (2026-09-09)
Score breakdown
Score constrained by 0 critical and 6 high-severity findings.
Fix first (6 critical/high)
| Severity | Rule | Finding | Remediation |
|---|---|---|---|
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egressbenchmarks/saas-starter-embedded-checkout/environment/app/(dashboard)/dashboard/general/page.tsx:14Evidence: const fetcher = (url: string) => fetch(url).then((res) => res.json()); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egressbenchmarks/saas-starter-embedded-checkout/environment/app/(dashboard)/dashboard/page.tsx:28Evidence: const fetcher = (url: string) => fetch(url).then((res) => res.json()); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egressbenchmarks/saas-starter-embedded-checkout/environment/app/(dashboard)/layout.tsx:19Evidence: const fetcher = (url: string) => fetch(url).then((res) => res.json()); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egressbenchmarks/saas-starter-partial-payments/environment/app/(dashboard)/dashboard/general/page.tsx:14Evidence: const fetcher = (url: string) => fetch(url).then((res) => res.json()); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egressbenchmarks/saas-starter-partial-payments/environment/app/(dashboard)/dashboard/page.tsx:28Evidence: const fetcher = (url: string) => fetch(url).then((res) => res.json()); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egressbenchmarks/saas-starter-partial-payments/environment/app/(dashboard)/layout.tsx:19Evidence: const fetcher = (url: string) => fetch(url).then((res) => res.json()); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| MEDIUM | AT-SEC-007 (LLM02) | Raw Secret Leakage in Debug Loggingbenchmarks/furever/environment/app/components/EditAccountButton.tsx:74Evidence: console.log('response ok', newEmail, newPassword); | Implement PII/secret redaction masks before writing to log streams. |
| MEDIUM | AT-SEC-007 (LLM02) | Raw Secret Leakage in Debug Loggingllm/ai-sdk/meter/examples/anthropic.ts:133Evidence: console.log('\n=== Sample 6: Stream with Max Tokens ==='); | Implement PII/secret redaction masks before writing to log streams. |
| MEDIUM | AT-SEC-007 (LLM02) | Raw Secret Leakage in Debug Loggingllm/ai-sdk/meter/examples/openai.ts:98Evidence: console.log('\n=== Sample 5: With Max Tokens ==='); | Implement PII/secret redaction masks before writing to log streams. |
| MEDIUM | AT-SEC-007 (LLM02) | Raw Secret Leakage in Debug Loggingllm/ai-sdk/provider/examples/openai.ts:51Evidence: console.log(`Customer ID: ${process.env.STRIPE_CUSTOMER_ID}\n`); | Implement PII/secret redaction masks before writing to log streams. |
Permissions
Scope: excessive · Shell: enabled · Network egress: yes · File deletion: none · Human approval: none
Provenance
License: MIT · Lockfile: no · Security policy: yes · Signals: unverified origin
Independently scanned by the AgentTrust registry (not self-reported by the project). Static analysis only — no code executed, findings need human triage, counts may include test/example code. Static snapshot; re-scan before relying on it: npx @eulogik/agenttrust scan https://github.com/stripe/agent-toolkit. Scores move with every upstream commit; pages refresh weekly. How scoring works.