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 ===