Bitte keine öffentlichen Issues für Sicherheitslücken eröffnen. Verwenden Sie GitHub Private Vulnerability Reporting, falls es im Repository aktiviert ist. Falls nicht, kontaktieren Sie die Maintainer über GitHub und veröffentlichen Sie keine Details.
system-gap-master definiert ein dateibasiertes Synchronisationsprotokoll für KI-Agenten über ein gemeinsames Verzeichnis ("Yard").
Es werden ausdrücklich keine Anmeldedaten, API-Keys, Token oder vertraulichen Personendaten im Yard abgelegt.
Sicherheitsrelevante Meldungen zu Pfadprüfungen, Dateizugriffen oder unerwarteter Datenweitergabe liegen im Geltungsbereich.
Please do not open public issues for security vulnerabilities. Use GitHub Private Vulnerability Reporting if it is enabled for the repository. If it is not enabled, contact the maintainers through GitHub and do not disclose details publicly.
system-gap-master defines a file-based sync protocol for AI agents over a shared directory ("Yard").
No credentials, API keys, tokens, or confidential personal data may ever be stored in the yard.
Security reports concerning path validation, file access boundaries, or unexpected data exposure are within scope.
- Host configs, receipt salts, roots, plans, operation manifests and backups are private local state and must not be committed or synced.
- Public examples contain placeholders only. A persistent high-entropy
receipt_saltHMAC-binds plans and manifests. - Observer mode is read-only. Only one host/root adapter may use
mutating-owner, and every adapter for that scope must share one local state directory so the path-derived lease is effective. - Symlinks, junctions, reparse points, alternate data streams, device names, changed sources, changed rollback targets and tampered backups fail closed.
- Lease mutations share a persistent host-local guard inode with a kernel-released OS lock. Rollback rebinds every input immediately before mutation and retains recoverable archives rather than deleting them.
- Lease renewal uses a fsynced no-overwrite temporary file and atomic replacement after a final guard/token/fingerprint check. A malformed lease is quarantined only when explicit takeover is enabled and stable mtime age exceeds the configured TTL; recent damage remains busy.
- The yard is semi-trusted. Exact approved SFTP paths may be metadata, but
file content, credential values, private keys, tokens and passwords are
forbidden. Every path declares
metadata_type=path-locationandcontent_included=false. - The CLI derives the read location
hosts/<TRUSTED-HOST>/trusted-peer-paths/registry.jsonand rejects host/slot substitution. It has no publisher or yard-write operation. - Strict JSON, canonical IDs, revision, freshness/expiry, pinned signature reference, canonical payload digest, known-host pin, peer permission and exact remote-path allowlists fail closed.
- A signature reference and digest are not publisher authentication. The
receipt says
cryptographic_signature_verified=false; a detached-signature verifier and anti-replay state remain activation gates. pull-planis deterministic but non-executable. It never opens a network connection, invokes SSH/SFTP, reads referenced credentials/keys/signatures or known-hosts files, writes the yard, creates a destination, enablesdirect_pullor transfers bytes.- Destinations must be absent, allowlisted, host-local, outside the yard and free of symlink/junction/reparse traversal. Server-side read-only ACLs, authentication, route selection, real host-key installation and a reviewed no-overwrite executor remain separate activation gates.
- Directories require a separate reviewed adapter. SQLite
.db,.sqlite,.sqlite3,-waland-shmpaths requirekind=database/sqlite,direct_pull=falseandadapter=sqlite-transit-sync; transfer remains in the R9db-transit/<namespace>snapshot boundary.