breachsweep
Plan-gated, non-destructive security testing of an app you own or are authorized to test, against a local instance. Finds real, fixable issues with reproduction evidence — it is not an attack tool.
Hard rules (read first — non-negotiable)
- Scope: only apps the user owns or is explicitly authorized to test. If ownership/authorization is unclear, ask and stop.
- Local only: test a local instance. Never production, never third-party services.
- Isolated: before probing, confirm the local instance's external integrations (email, payment, storage, webhooks, push) are sandboxed or disconnected from production/third parties. If you can't confirm, treat those paths as out of scope.
- Non-destructive by default: no deletion, no mutation of existing or other-user data, no DoS, no request floods. Read and detect. (Provisioning your own test accounts through the app's normal signup/seed flow is setup, not an attack — that's allowed.) Any state-changing check needs explicit user approval and an isolated, re-seedable environment.
- Report to fix, not to weaponize: give the minimum reproduction plus the remediation. Do not write a full weaponized exploit chain.
- Unverified ≠ safe: what you couldn't test is "미검증", never "안전".
Phase 0 — Discover (reuse preflight)
Run/reuse preflight. Additionally map: routes/endpoints, the auth middleware, session/token handling, and secret handling. Reuse the repo's own npm audit / security CI if present.
Phase 1 — Plan + approval gate (MANDATORY)
Present, and stop per the shared gate in ../beagle-shared/approval-gate.md, a plan that states:
- Authorized targets: exact host(s)/base URL(s) — a local instance only.
- Allowed methods and account/data scope, plus a request-rate ceiling (no floods).
- Test categories to run and what's out of scope.
- The non-destructive guarantee.
- Authorization: the user must personally confirm they own or are authorized to test these targets. Do not proceed on an agent-written assumption — the user affirms it, or you stop.
Phase 2 — Launch
Local instance only. Seed multiple accounts (A/B) so authorization isolation can be tested.
Phase 3 — Non-destructive checks
- AuthZ / IDOR: with accounts A and B, try to read B's objects by id/reference as A (read-only by default). A state-changing authz check (write/delete as the wrong user) runs only if separately approved, against re-seedable data.
- AuthN: hit protected endpoints with no/expired/reused session or token.
- Input validation: probe SQLi / XSS / path-traversal with safe, non-destructive payloads; observe reflection, errors, and error verbosity.
- Secret exposure: secrets in responses, source maps, verbose error pages, debug endpoints.
- Headers / transport: CSP, HSTS, cookie flags (HttpOnly/Secure/SameSite), CORS misconfiguration.
- Client: hardcoded secrets in web JS / mobile bundles; insecure local storage.
- Dependencies: run the repo's own audit tool; don't reinvent.
Phase 4 — Report
Write per ../beagle-shared/report-base.md (Korean default, anti-slop). Header includes 테스트 범위 및 인가. Per finding: 취약점 유형 · 위치(엔드포인트/파일) · 재현(요청·응답 증거) · 영향 · 수정 제안 · 확신(확실/추정). Close with 미검증/범위 외.
Optionally offer a static re-check runner via ../beagle-shared/emit-runner.md.
1---2name: breachsweep3description: Use when asked to security-test, pentest, or find vulnerabilities in a locally runnable app you own — auth/authorization (IDOR), input validation (injection), secret exposure, security headers, insecure cookies/CORS. Triggers on "보안 점검", "취약점 찾아줘", "security audit", "pentest my app".4---56# breachsweep78Plan-gated, non-destructive security testing of an app **you own or are authorized to test**, against a **local** instance. Finds real, fixable issues with reproduction evidence — it is not an attack tool.910## Hard rules (read first — non-negotiable)1112- **Scope**: only apps the user owns or is explicitly authorized to test. If ownership/authorization is unclear, ask and stop.13- **Local only**: test a local instance. Never production, never third-party services.14- **Isolated**: before probing, confirm the local instance's external integrations (email, payment, storage, webhooks, push) are sandboxed or disconnected from production/third parties. If you can't confirm, treat those paths as out of scope.15- **Non-destructive by default**: no deletion, no mutation of existing or other-user data, no DoS, no request floods. Read and detect. (Provisioning your own test accounts through the app's normal signup/seed flow is setup, not an attack — that's allowed.) Any state-changing check needs explicit user approval and an isolated, re-seedable environment.16- **Report to fix, not to weaponize**: give the minimum reproduction plus the remediation. Do not write a full weaponized exploit chain.17- **Unverified ≠ safe**: what you couldn't test is "미검증", never "안전".1819## Phase 0 — Discover (reuse preflight)2021Run/reuse `preflight`. Additionally map: routes/endpoints, the auth middleware, session/token handling, and secret handling. Reuse the repo's own `npm audit` / security CI if present.2223## Phase 1 — Plan + approval gate (MANDATORY)2425Present, and stop per the shared gate in `../beagle-shared/approval-gate.md`, a plan that states:26- **Authorized targets**: exact host(s)/base URL(s) — a local instance only.27- **Allowed methods and account/data scope**, plus a **request-rate ceiling** (no floods).28- **Test categories** to run and what's **out of scope**.29- The **non-destructive guarantee**.30- **Authorization**: the user must personally confirm they own or are authorized to test these targets. Do not proceed on an agent-written assumption — the user affirms it, or you stop.3132## Phase 2 — Launch3334Local instance only. Seed multiple accounts (A/B) so authorization isolation can be tested.3536## Phase 3 — Non-destructive checks3738- **AuthZ / IDOR**: with accounts A and B, try to **read** B's objects by id/reference as A (read-only by default). A state-changing authz check (write/delete as the wrong user) runs only if separately approved, against re-seedable data.39- **AuthN**: hit protected endpoints with no/expired/reused session or token.40- **Input validation**: probe SQLi / XSS / path-traversal with **safe, non-destructive** payloads; observe reflection, errors, and error verbosity.41- **Secret exposure**: secrets in responses, source maps, verbose error pages, debug endpoints.42- **Headers / transport**: CSP, HSTS, cookie flags (HttpOnly/Secure/SameSite), CORS misconfiguration.43- **Client**: hardcoded secrets in web JS / mobile bundles; insecure local storage.44- **Dependencies**: run the repo's own audit tool; don't reinvent.4546## Phase 4 — Report4748Write per `../beagle-shared/report-base.md` (Korean default, anti-slop). Header includes **테스트 범위 및 인가**. Per finding: 취약점 유형 · 위치(엔드포인트/파일) · 재현(요청·응답 증거) · 영향 · 수정 제안 · 확신(확실/추정). Close with 미검증/범위 외.4950Optionally offer a static re-check runner via `../beagle-shared/emit-runner.md`.