audit-security
OWASP Top 10 pattern scan for common vulnerabilities
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
OWASP Top 10 pattern scan for common vulnerabilities
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Scaffold a REST API endpoint with hexagonal layers and integration tests
Scaffold a React component with Vitest tests (TDD-first)
Scaffold a new Shell extension with hexagonal layers and TDD
Add a sub-feature within an existing Shell extension
Scaffold a SQL migration with RLS policy, rollback plan, and test seed data
Scaffold a Tauri IPC command with full round-trip (Rust handler, TS types, React hook, tests)
| name | audit-security |
| description | OWASP Top 10 pattern scan for common vulnerabilities |
| user_invocable | true |
Static pattern scan for common security vulnerabilities, aligned with OWASP Top 10 categories relevant to this stack.
Search crates/**/*.rs for format! macro calls near sqlx::query,
sqlx::query_as, or sqlx::query_scalar invocations.
Parameterized queries using $1, $2 bind parameters are safe. Flag any
query string built with format!, string concatenation, or interpolation.
Inspect route handlers in crates/grove-api/src/routes/**/*.rs:
Allowlist (endpoints that may skip auth):
/health, /healthz, /readyz)Search crates/grove-api/src/**/*.rs for patterns where workspace_id or
org_id is taken directly from path parameters or request body without
validation against the authenticated user's tenant context.
Safe pattern: extracting tenant from auth claims or TenantTx.
Unsafe pattern: trusting client-provided IDs without cross-referencing auth.
Search all source files (excluding the items below) for patterns matching:
api_key, secret, password, token as string literal values
(not type names or field names)DATABASE_URL, CLERK_SECRET_KEY with inline valuessk_live_*,
pk_live_*, etc.)Exclude from scan:
.env.example files*_test.rs, *.test.tsx, *.spec.tsx)pnpm-lock.yaml, Cargo.lock)target/ and node_modules/ directoriesapi_key: String are OK)Search route handlers in crates/grove-api/src/routes/**/*.rs for Json<T>
extractors. Verify that the extracted type T either:
validator::Validate)Flag handlers that accept Json<T> without apparent validation.
If WebSocket handlers exist in crates/grove-api/src/:
If no WebSocket handlers exist, SKIP this check.
Run cargo audit if the tool is installed:
cargo audit is not installed, report as SKIP (not FAIL)=== SECURITY AUDIT ===
Summary
| Metric | Value |
|---------------------|--------|
| Status | PASS/FAIL |
| Critical findings | N |
| High findings | N |
| Medium findings | N |
| Checks run | N |
| Checks skipped | N |
Findings by Category
| Category | Status | Findings |
|---------------------|--------|----------|
| SQL Injection | PASS | 0 |
| Auth Bypass | PASS | 0 |
| Tenant Isolation | PASS | 0 |
| Hardcoded Secrets | PASS | 0 |
| Input Validation | WARN | 2 |
| ACP WebSocket | SKIP | — |
| Dependency Audit | SKIP | — |
Detailed Findings
| Severity | Category | Location | Issue |
|----------|-------------------|-----------------------------------|--------------------------------|
| HIGH | Input Validation | crates/grove-api/src/routes/foo.rs:30 | Json<CreateFoo> without validation |
=== RESULT: PASS/FAIL ===