Ctrl K
ComunidadGuías…

SECURITY.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Security policy

proxxx is a terminal cockpit for Proxmox VE & PBS that handles cluster
API tokens, SSH credentials, and (optionally) Telegram bot tokens. We
take vulnerability reports seriously and prefer responsible disclosure.

## Reporting a vulnerability

**Do not open a public GitHub issue for security problems.** Instead,
report privately via one of:

- **GitHub private vulnerability report** (preferred): use the
  *Security → Report a vulnerability* button on the repository page.
  This opens a private advisory thread visible only to maintainers.
- **Email**: `fabrizio.salmi@gmail.com` with subject prefix
  `[proxxx security]`. PGP not required; if you prefer encrypted
  email, ask in your first message and we will exchange a key.

Please include:

1. A description of the issue and its impact.
2. The proxxx version (`proxxx version --json`) and host OS / arch.
3. Steps to reproduce, ideally a minimal config + command sequence.
4. Whether a public CVE has been requested elsewhere, so we can
   coordinate.

## Response timeline

- **Acknowledgement**: within 72 hours.
- **Triage** (severity classification, scope): within 7 days.
- **Fix or mitigation plan**: within 30 days for High/Critical.
  Lower severities are scheduled with the next release.
- **Coordinated disclosure**: by default, public disclosure 14 days
  after a fix ships in a tagged release; sooner if the issue is
  already public, longer if you need additional time to update
  downstream.

## Scope

For the comprehensive attack-surface enumeration with per-surface
mitigations and accepted risks, see [`THREAT_MODEL.md`](THREAT_MODEL.md).
The summary below is the in-scope vulnerability classes for this
disclosure policy.

In scope:

- Privilege escalation via crafted PVE / PBS API responses.
- Secret leakage (token, password, ticket, CSRF) into logs, audit
  files, swap, core dumps, or process output.
- Shell-injection in any path that shells out (`pveum`,
  `proxmox-backup-client`).
- TLS verification bypass beyond the documented per-profile
  `verify_tls = false`.
- TOCTOU on temp files (e.g. SPICE `.vv` handoff).
- HITL-bypass paths in the approval gate (Telegram round-trip).
- Memory-safety issues unique to proxxx (vs upstream crates).
- MCP tool registry tampering or schema-mismatched payloads.

Out of scope (please do not report):

- Vulnerabilities in upstream crates that are already documented in
  `.cargo/audit.toml` and ignored with a stated reason. `cargo audit`
  runs on every commit + nightly; ignored advisories are listed in
  `proxxx version --json` under `audit_ignores`.
- Misconfiguration of the operator's PVE/PBS cluster itself.
- DoS via clearly hostile inputs (ridiculous CIDR ranges, recursive
  config) unless they break a documented invariant.
- Findings against `tests/`, `development/`, or `docs/` content
  (these are not part of the shipped binary's attack surface).
- Theoretical issues without a reproducer.

## Hardening already in place

If you're auditing the codebase, these mechanisms are intentional and
documented in `docs/architecture/security.md`:

- `SecretString` (`src/util/secret.rs`) for every secret (token, ticket,
  CSRF, password, PBS token): `Debug` prints `[REDACTED]`, there is no
  `Display` or `Serialize`, and `Drop` overwrites the heap allocation.
- `cargo clippy --deny unwrap_used --deny expect_used --deny panic
  --deny indexing_slicing` on every commit + CI.
- 32 MiB body cap on every API response (no OOM via hostile JSON).
- Rate-limited API client (`governor`) per profile.
- TOFU `known_hosts` for SSH (no blind trust).
- TOCTOU-safe SPICE `.vv` handoff: `tempfile` + `O_EXCL` + 128-bit
  random suffix + mode 0600.
- Shell-quoted `pveum` invocation with metachar refusal + `--`
  separator (3 layers of defence; tested with `'; touch /tmp/pwned`,
  `$(rm -rf /)`, backticks, pipes, semicolons, newlines).
- `cargo audit --deny warnings` runs locally as gate stage 3,
  in CI on every push, and nightly via cron.
- Compile-time-fixed MCP tool registry (no runtime registration);
  registry hash exposed via `proxxx mcp tools --checksum` for
  supply-chain pinning.
- Pre-flight risk gate refuses destructive ops on running guests
  without `--allow-risk`.

## Recognition

We don't run a paid bug bounty (single-maintainer project), but we
will credit reporters in `CHANGELOG.md` and the GitHub advisory
unless you ask to remain anonymous.