Skip to content

Security: raintree-technology/agent-starter

Security

SECURITY.md

Security Policy

Reporting a Vulnerability

If you discover a security vulnerability in claude-starter, please report it by emailing security@raintree.ai (or create a private security advisory on GitHub).

Please do not open a public issue.

What to Include

  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (if any)

We will respond within 48 hours and provide a timeline for fixing the issue.


Security Measures

This package implements multiple layers of security:

1. Command Injection Prevention

  • ✅ The CLI performs file-copy operations only; it does not shell out or execute external commands
  • ✅ No shipped workflow engine executes arbitrary shell commands

2. Path Traversal Prevention

  • ✅ All file paths validated before operations
  • isPathSafe() checks ensure paths stay within expected directories
  • ✅ Relative paths only (no absolute paths)
  • ✅ No .. directory traversal allowed
  • ✅ Prefix-sibling paths are rejected with path.relative() containment checks

3. Prototype Pollution Protection

  • ✅ The runtime does not recursively merge untrusted objects
  • ✅ Settings merges copy known top-level keys instead of traversing arbitrary user-controlled paths

4. Regular Expression DoS (ReDoS) Prevention

  • ✅ Length checks before regex validation
  • ✅ Simple, non-backtracking regex patterns
  • ✅ Maximum input lengths enforced

5. Symlink Attack Prevention

  • ✅ Symlinks detected and rejected during copy operations
  • lstat() used instead of stat() to detect links
  • ✅ Required template files must be regular files

6. Least Privilege Defaults

  • ✅ Shared template settings ship without wildcard tool permissions
  • ✅ Executable hooks and elevated trust settings belong in .claude/settings.local.json

7. Supply Chain Hardening

  • ✅ Skill installation guidance requires commit-pinned GitHub sources
  • ✅ Skill installs review a single downloaded artifact and surface its SHA-256 digest before install
  • ✅ Installed bytes are copied from the reviewed artifact instead of being re-fetched from a mutable branch
  • ✅ GitHub Actions are pinned to full commit SHAs in CI
  • ✅ CI runs gitleaks secret scanning and CodeQL on every PR and push to main
  • ✅ Dependabot version updates are configured for npm (root + site/) and GitHub Actions in .github/dependabot.yml
  • ℹ️ Repository-level controls (secret-scanning push protection, Dependabot security alerts, branch protection) are configured in GitHub repo settings, outside this source tree

8. Input Validation

  • ✅ All user inputs sanitized
  • ✅ Skill IDs, paths, and command names validated before use
  • ✅ Log injection prevention (control character filtering)

Known Limitations

Out of Scope

  • User authentication - This is a local tool, no auth required

Dependency Security

We regularly audit dependencies:

# Check for vulnerabilities
npm audit

# Update dependencies
npm update

# Check for outdated packages
npm outdated

Automated: GitHub Dependabot alerts enabled


Secure Usage Guidelines

For Users

  1. Only install from npm:

    npx create-claude-starter  # ✅ Safe
  2. Verify package integrity:

    npm view create-claude-starter dist.integrity
  3. Don't run with elevated privileges:

    sudo npx create-claude-starter  # ❌ Not needed
  4. Review installed skills before use:

    find .claude/skills -maxdepth 3 -name skill.md -print

For Contributors

  1. Never commit secrets - Use .gitignore
  2. Validate all inputs - Use security.js utilities
  3. Default to typed execution - Use execFile or other typed actions by default
  4. Test security - Run npm test
  5. Update dependencies - Keep packages current

Security Checklist (Pre-Release)

Before each release, verify:

  • npm audit shows no vulnerabilities
  • All dependencies up to date
  • Security tests passing
  • No hardcoded secrets or credentials
  • All file operations use path validation
  • Input validation on all user-provided data
  • Error messages don't leak sensitive info
  • CHANGELOG.md documents security fixes

Security Testing

Run security tests:

# Unit tests (including security)
npm test

# Dependency audit
npm audit

# Static analysis
npm run lint

Version History

v3.0.0

  • Depth-pack reframe; manifest system removed in favor of the init/docs CLI
  • SSRF defense rebuilt: HTTPS-only parsing, IP-literal and private-suffix blocks, DNS public-address resolution check
  • Atomic --force installs (staged replace with rollback) and batch preflight before any writes
  • Docs cache hardened: 5 MB size cap, schema validation, 0700/0600 modes
  • Symlink rejection across all copy paths
  • CI with SHA-pinned actions: lint, tests, npm/bun audit, gitleaks, CodeQL

v1.0.0

  • Initial release with core security measures: command injection prevention, path traversal protection, ReDoS prevention, symlink mitigation, JSON-bomb limits

Credits

Security audit and improvements by the Raintree team.

If you have security concerns or suggestions, please contact us at security@raintree.ai.

There aren't any published security advisories