Security Policy

This document states how to report a vulnerability in aslice itself — the package manager, its helpers, the installer, the repository and signing infrastructure, and the farm tooling. Vulnerabilities in packaged software go elsewhere; see "Out of scope" below.

aslice is security infrastructure for machines that no longer receive security updates from anyone else; reports are handled with that in mind.

Project terms, acronyms, and the Homebrew translation table: docs/NOMENCLATURE.md.

Reporting a vulnerability

Email: security@aslice.sh — subject line prefix [aslice security].

Please include:

Once the project cuts its first release, a PGP key for encrypted reports will be published here and cross-signed into the repository. Until then, if your report needs encryption, send a short plaintext email requesting a secure channel; we will agree one before you send the details.

Do not file security reports as public GitHub issues.

What to expect

This is a spare-time project, not a corporation, so these are commitments, not SLAs:

Scope

In scope, roughly ordered by how much each class matters:

  1. Signature and metadata verification bypasses — getting aslice to install or trust content that did not come from a pinned, verified source (TUF rollback/freeze/mix-and-match, minisign or OpenPGP verification, source-hash pinning, vendor signer pinning).
  2. Sandbox escapes — package build code (Starlark phases) reaching the network, the live store, the user's profile, or anything outside its phase-scoped Seatbelt profile.
  3. aslice-system privilege escalation — the elevated helper performing anything beyond the declared, consented actions, or being invoked into doing so.
  4. Store and generation integrity — anything that silently mutates installed content or defeats rollback, including paths through gc, clean, or self-update.
  5. The installer and trust bootstrap — the curl'd first step: hash pinning, the second-transport checksum cross-check, the /opt/aslice creation.
  6. The farm and signing pipeline — job-manifest forgery, quarantine bypass, agent-to-signing-host trust boundaries, the transparency log.
  7. Denial of service against a user's machine — e.g. a malicious repository or package wedging the resolver, the database, or disk watermarks.

Rules of engagement

Out of scope

Supported versions

Pre-1.0: the latest release only. Self-update is a first-class, rollback-complete path (DESIGN §12.12), so "are you current?" is always the first question and the answer is always cheap. After 1.0 this document will name a supported window; do not expect long support tails — the platform is frozen, the manager is not.

If a key is compromised

Key compromise is handled in the open under docs/runbooks/KEY-RUNBOOK.md. The project is responsible for the response. Initial releases trust one operator: owner merge authorizes automatic release processing after all required gates. A 1-of-1 root stays on an offline Pi; a dedicated networked Pi holds distinct targets, snapshot, and slice-signing keys, while the Mac Pro publisher holds publication credentials and the timestamp key. Online signer compromise can authorize malicious releases. Offline root custody supports authority replacement but cannot undo installations or make compromised content trustworthy. Metadata expires; stopping publication does not instantly revoke client trust. Encrypted offline backups, recovery and rotation drills remain launch requirements. Independent custodians and hardware tokens are future options, not launch prerequisites. This is the specified design; the services and drills remain implementation work.


History

Document revision history | Date | Changes | |---|---| | September 2026 | Consolidate revision notes into a collapsible history table; no specification changes. | | September 2026 | prose-fix pass: the opening's seriousness clause rebuilt ('handled with that in mind'); gems kept deliberately ('A reproducer beats a write-up', 'the threat model starts below that line', 'rotation is drilled, not hoped for'); no policy changes. | | September 2026 | editorial pass: prose revised for directness; no policy changes. | | September 2026 | prose rewrite throughout: the policy reworded in the project's technical-writing voice; no policy changes. | | September 2026 | NOMENCLATURE.md vocabulary pointer added; no policy changes. | | September 2026 | contact moves to security@aslice.sh with the project domain (owner decision); no policy changes. | | September 2026 | prose rewrite of encrypted reporting and key-incident guidance; no policy changes. | | September 2026 | Documentation audit repairs: contract summaries aligned; owner-approved namespace, rollback, GC, naming, prefix, and graft decisions applied where relevant; semantic anchors and explicit citations added. Runtime implementation and platform acceptance remain pending. |

Source document