DO NOT create public GitHub issues for security vulnerabilities.
Report security issues via:
- Email: [email protected] or [email protected]
- Private vulnerability disclosure on GitHub
- Direct message to repository maintainers
Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested remediation (if any)
Response time: We aim to acknowledge within 48 hours and provide initial assessment within 5 business days.
Only the latest version on main branch receives security updates. This repository follows continuous delivery - we do not maintain separate release branches.
All external process execution flows through governed adapters:
- Process Policy:
configs/process-policy.allowlistrestricts executable names - Network Policy:
configs/network-policy.jsoncontrols network access and rate limits - Secrets Policy:
configs/secrets-policy.jsondefines allowed secrets and storage patterns
This repository integrates with external agents (Claude Code, Codex, Grok) under strict boundaries:
Informational Only:
- External ecosystems (HUMMBL, ClawHub, MoltBot) are documented for context
- No runtime dependencies on external registries
- Skills registry authority: local
skills/MANIFEST.jsononly
Governed Writes:
- External agents cannot modify vendor code (
vendor/protected) - All writes logged to
_state/runs/<date>/with provenance - Process execution requires allowlist approval
Never commit:
- API keys
- Authentication tokens
- Private keys
- Credentials of any kind
Required practices:
- Use
configs/moltbot/*.local.jsontemplates (gitignored) - Run
scripts/lint-secret-scan.shbefore commits - Run
scripts/lint-secrets-policy.shto validate policy compliance - Store production secrets in secure vaults (1Password, Keychain, etc.)
Detection:
- CI runs
lint-secret-scan.shon every PR lint-artifact-secrets.shscans generated artifacts- Pattern-based detection for common secret formats
Default posture: Network access restricted
Allowlist required for:
- External API calls (LLM providers, communication channels)
- Registry lookups (local only)
- Any outbound HTTP/HTTPS
Enforcement:
scripts/lint-network-policy.shvalidates policyscripts/test-network-guard.shtests rate limiting- Adapters implement network guards with dry-run modes
Protected paths:
vendor/: Read-only; PRs reject edits (except README, UPSTREAM_PINS)configs/**/*.local.json: Gitignored secrets storage_state/evidence/: Governed evidence import only
Permitted writes:
_state/runs/<date>/: Run logs and artifactsskills/: Skill definitions (validated by registry lint)
Before submitting PRs:
- No secrets committed (
git log -p | grep -i 'api.key\|token\|password') - Run
scripts/lint-secret-scan.sh - Run
scripts/lint-secrets-policy.sh - Process policy updated if adding new executables
- Network policy updated if adding external calls
- Run
scripts/e2e-validate.sh --mode offline
If secrets are committed:
- Rotate immediately: Revoke and regenerate all exposed credentials
- Notify maintainers: Report via security contact
- Rewrite history: Use
git filter-branchor BFG Repo-Cleaner - Force push: After history rewrite (coordinate with team)
- Audit logs: Check for unauthorized access using exposed credentials
If vulnerability discovered:
- Isolate: Document scope and affected systems
- Report: Use private security reporting channel
- Patch: Develop fix in private fork if needed
- Test: Validate fix with security team
- Coordinate disclosure: Agree on timeline with maintainers
Coordinated disclosure:
- 90-day private disclosure period
- Public disclosure after patch available or 90 days (whichever comes first)
- Credit to reporter in CHANGELOG and security advisories
Exceptions:
- Active exploitation: Immediate patch and disclosure
- Low-severity issues: May be addressed in public PRs
Extra scrutiny required for changes to:
packages/adapters/process/: Process executionpackages/adapters/llm/: LLM API callspackages/adapters/communication/: External messagingscripts/run-cmd.sh: Governed command executionconfigs/process-policy.allowlist: Executable allowlistconfigs/network-policy.json: Network boundariesconfigs/secrets-policy.json: Secrets management
- Governed execution:
docs/governed-model-call.md - Network policy:
configs/network-policy.json - Secrets lifecycle:
docs/SECRETS_LIFECYCLE.md - Runner threat model:
docs/THREAT_MODEL_RUNNERS.md - Validation checklist:
docs/validation-checklist.md