| Version | Supported |
|---|---|
| 1.5.x | Yes |
| 1.4.x | Yes |
| 1.3.x | Yes |
| 1.2.x | Yes |
| 1.1.x | Yes |
| 1.0.x | Yes |
We take security seriously. If you discover a security vulnerability in SpecOps, please report it responsibly.
- Do NOT open a public GitHub issue for security vulnerabilities
- Use GitHub Security Advisories to report privately
- Alternatively, email security concerns to the repository maintainers
- Description of the vulnerability
- Steps to reproduce
- Affected files or components
- Potential impact assessment
- Suggested fix (if any)
- Acknowledgment: Within 48 hours of report
- Triage: Within 7 business days
- Fix: Dependent on severity, targeting 30 days for critical issues
- Disclosure: Coordinated disclosure after fix, with a 90-day maximum window
| Severity | Description | Example |
|---|---|---|
| Critical | Agent can be hijacked to execute unintended actions | Prompt injection via configuration that bypasses all guardrails |
| High | Data leakage or unauthorized file access | Spec generation that exposes secrets or PII from the codebase |
| Medium | Configuration bypass or validation failure | Schema accepts values that should be rejected (path traversal) |
| Low | Minor information disclosure or cosmetic security issue | Verbose error messages that leak internal paths |
- Prompt injection via
.specops.jsonconfiguration (especiallyteam.conventionsand custom templates) - Path traversal in
specsDiror template paths - Path construction for
initiatives/directory (initiative ID used in path construction must be validated against^(?!\\.{1,2}$)[a-zA-Z0-9._-]+$pattern) - Shell script vulnerabilities in
setup.shandverify.sh(command injection, unsafe variable handling) - Schema bypass allowing invalid or dangerous configuration values
- Data leakage through generated specification files
- Vulnerabilities in Claude Code itself (report to Anthropic)
- Vulnerabilities in Anthropic's API or infrastructure
- Issues in third-party dependencies of projects using SpecOps
- Social engineering attacks
SpecOps operates within the following trust boundaries:
-
.specops.jsonis a trust boundary: Anyone with write access to the project repository can modify.specops.json, which influences agent behavior. The agent validates and sanitizes configuration values, but organizations should treat.specops.jsonchanges with the same scrutiny as code changes. -
Custom templates are a trust boundary: Templates loaded from
<specsDir>/templates/are treated as structural content only. The agent does not execute instructions found in template files. -
Generated specs may contain sensitive architectural details: Design documents (
design.md) may describe security-relevant architecture. Organizations should review spec files before sharing broadly. -
The agent respects Claude Code's permission model: All file operations, git commands, and external actions are subject to Claude Code's built-in permission system. SpecOps does not bypass these controls.
-
Remote installation uses checksum verification: When installing via
curl | bash(the remote installer), downloaded files are verified against SHA-256 checksums published inCHECKSUMS.sha256after download and before proceeding with installation. Files that fail verification are removed and installation aborts. The checksums file is fetched from the same version ref as the installed files.
The remote installer (scripts/remote-install.sh) uses a layered trust model:
- Transport security: All downloads use HTTPS via
raw.githubusercontent.com, providing encryption and server authentication - Version pinning: The
--versionflag pins downloads to a specific git ref (e.g.,v1.3.0), preventing silent updates - Checksum verification: Each downloaded file's SHA-256 hash is compared against the published
CHECKSUMS.sha256in the same version ref - Fail-fast: If any checksum fails, the file is removed and installation aborts
Residual risks: If the GitHub repository itself is compromised, both files and checksums could be altered. For maximum assurance, clone the repository and verify files manually. GPG signing of releases is planned for a future version.
After installation (or for independent verification), check file integrity against published checksums:
# Verify all critical files (from a cloned repo)
shasum -a 256 -c CHECKSUMS.sha256
# Verify a single installed file
shasum -a 256 ~/.claude/skills/specops/SKILL.md
# Compare output against the hash in CHECKSUMS.sha256 for platforms/claude/SKILL.mdThe --no-verify flag disables checksum verification:
curl -fsSL .../remote-install.sh | bash -s -- --platform claude --no-verifyUse --no-verify only when:
- Installing from a custom fork or branch where CHECKSUMS.sha256 does not exist
- Testing development builds
- Operating in an air-gapped environment with a local mirror
Never use --no-verify for production installations from the official repository.
- Review
.specops.jsonchanges in PRs just like code changes - Set
autoCommit: falseandcreatePR: falsein sensitive environments - Use
reviewRequired: trueto require human review before implementation - Do not store secrets in
.specops.jsonor specification files - Add
.specops/to your project's.gitignoreif specs contain sensitive architectural details
This project undergoes periodic security reviews using Claude Code's /security-review command, which performs automated static analysis with false-positive filtering and confidence scoring.
Latest audit: 2026-03-02 — No high-confidence vulnerabilities found. See SECURITY-AUDIT.md for the full report.
Audits are recommended before each release and after changes to security-sensitive files.