Report security vulnerabilities privately. Do NOT open a public GitHub issue.
- Email: security@sverka.dev
- Response time: 48 hours
- Disclosure: coordinated, after fix is released
- NEVER commit secrets, API keys, tokens, or passwords to the repository
- Use environment variables or secret managers
- If a secret is accidentally committed: rotate it immediately, then use
git filter-repoor BFG Repo-Cleaner to purge it from history, then force-push the rewritten branch. A force-push alone does NOT remove the secret from retained history, forks, logs, or artifacts — rotation comes first - Reviewer must check for hardcoded secrets in every PR
- Prefer dependencies published at least 7 days ago (supply chain safety)
- Avoid floating ranges (
latest,*, unbounded>=) that auto-resolve to brand-new releases - Run
bun auditperiodically - Pin lockfile (
bun.lock) — do not commit without it
- No
anytypes (useunknownand narrow) — prevents type confusion bugs - Validate all external input before use
- No
eval(), nonew Function(), no dynamic code execution - No
child_process.execwith user input — useexecFilewith arg arrays - Sanitize file paths — no path traversal via
..in user input - Use
spawnSyncwith timeout for subprocess calls (prevent hangs)
- Never modify repository security policies or compliance controls to work around CI failures
- Never disable branch protection, even temporarily
- Escalate CI/auth failures to the user instead of working around them
- Agents must not expose or log secrets
- Agents must not commit secrets
- Agents must not modify security policies
dangerouspermission mode is for local dev only, never for CI
Sverka executes commands in Docker containers and host processes:
- Docker executor: verify image digests, no untrusted images
- Host executor: validate commands before execution, no shell injection
- Runtime args: sanitize all user-provided paths and arguments
- Credentials: pass via env vars, never log them