RePERS is a local-first repository harness. It does not run a network service or publish to a package registry. The threat surface is the installer, the pre-commit hook, the capability scripts, and the templates copied into receiver repos.
Don't open a public issue. Use GitHub's private channel:
https://github.com/coolsocket/repers/security/advisories/new
If that's unavailable, contact the maintainer via the email in git log
(most recent maintainer commit's Author:). Do not include secrets, private
repository contents, or full local paths unless required to reproduce.
- Affected file path + RePERS version (from
.codex-plugin/plugin.json). - Clear description of the vulnerability + proof-of-concept (if you have one).
- Your assessment of severity (local code execution? privilege boundary crossing? install-time tampering? evidence forgery?).
- Initial acknowledgment within 72 hours.
- Coordinated disclosure — patched release ships before the advisory becomes public.
- Public credit unless you ask to remain anonymous.
These deserve the closest review by anyone auditing this code:
-
.repers/scripts/install_repers.py— runs at receiver install time. Writes files into the receiver's working tree and optionally registers a Git pre-commit hook. Pay attention to:- Path traversal in
--targetargument. - Symlink races during extraction.
- Hook-policy default (
warn, notstrict) — opt-in escalation only.
- Path traversal in
-
.repers/hooks/pre-commit— runs in the receiver's repo before every commit if installed. Must not assume hostile-free working tree. Avoid:- Untrusted command construction from staged file paths.
- Long-running operations that block commits indefinitely.
-
.repers/scripts/repers.pysubcommands — each runs locally with the invoking user's privileges. Thedispatchandrunsubcommands shell out for worker-command execution. Pay attention to:- Argument quoting in subprocess calls.
- Target-file boundary enforcement (a worker writing outside its declared
target_filesis the orchestration-safety bug we explicitly guard against).
-
.repers/capabilities/registry.json— paths and commands here are surfaced verbatim bypreflight. A malicious registry entry is a malicious command suggestion. Treat any PR touching this file as security-sensitive. -
.repers/templates/**— copied verbatim into receiver projects by the installer. A malicious template = malicious code in every receiver. -
dist/repers-release-pack.zip— the transferable handoff. Any receiver verifying a pack trusts the embeddedrepers-verify-all.json. Therelease-pack-verifygate must re-execute verification against the extracted contents rather than trusting the embedded JSON verbatim.
- Vulnerabilities in receiver projects that adopt RePERS — those belong to the receiver.
- Issues in tools RePERS shells out to (
git,python, optionalcodegraph). - Cosmetic markdown / docs issues (use a regular issue).
Run the receiver status gate after install:
python .repers/scripts/repers.py bundle-status --jsonRun the full package gate before sharing a bundle:
python .repers/scripts/repers.py bundle-status --package --verify-roundtrip --jsonThank you for keeping RePERS users safe.