Skip to content

Security: GammaLabTechnologies/harmonist

Security

SECURITY.md

Security Policy

Supported versions

Version Supported
1.x
< 1.0

Security fixes are backported only to the latest 1.x minor release.

Reporting a vulnerability

Do not open a public GitHub issue for security reports.

Open a private security advisory via the repository's Security tab (SecurityReport a vulnerability). Provide:

  • A clear description of the problem and the attack surface.
  • Reproduction steps or a minimal proof-of-concept.
  • The affected pack version (VERSION file or .cursor/pack-version.json).
  • Your assessment of severity (critical / high / medium / low).

Encrypted communication is available on request.

Response timeline

Stage Target
Acknowledgment within 48 hours
Initial triage within 7 days
Fix or mitigation depends on severity (critical: ≤ 14 days; others: next minor)
Public disclosure coordinated with the reporter

Scope

Harmonist ships two classes of assets, both in-scope for security review:

Shipped code — always in scope:

  • agents/scripts/*.py + hooks/scripts/*.{py,sh} — the enforcement layer. Any path traversal, command injection, or privilege escalation vector is a security bug.
  • memory/memory.py + memory/validate.py — the supply-chain-sensitive CLI and validator. Bypassing secret-pattern scans or validator checks counts as in-scope.
  • MANIFEST.sha256 verification in upgrade.py / install_extras.py — any way to install a tampered source file is critical.
  • scan_agent_safety.py — the prompt-injection scanner. False negatives on documented hostile patterns are in-scope.

Shipped prompts (agent .md files) — limited scope:

  • Hostile content in agent bodies that tries to override the protocol, exfiltrate secrets, or subvert review gates is a bug. scan_agent_safety.py is expected to catch these on the catalogue we ship; escapes are in-scope.
  • Prompts misbehaving under adversarial user input (jailbreak research) are out of scope — no LLM prompt is bulletproof.

Out of scope:

  • LLM hallucinations or model-specific behaviour.
  • Issues in third-party tools (Cursor, Claude Code, Copilot, etc.).
  • Social-engineering attacks against maintainers.

Hardening guidance for users

  • Run python3 agents/scripts/check_pack_health.py after every pull. It verifies MANIFEST.sha256, lints the catalogue, and runs the prompt-injection scanner.
  • Keep .cursor/memory/*.md in .gitignore unless the project is public and the content has been reviewed. Memory files accumulate project-sensitive state.
  • Set telemetry_enabled: false in .cursor/hooks/config.json if local agent-usage counters are undesirable.
  • When upgrading a project, always use upgrade.py --apply (not manual copy). --apply sha-verifies every source file before it touches the project.

There aren’t any published security advisories