Skip to content

Security: sherrmann/Spoolman-NG

Security

SECURITY.md

Security Policy

Supported versions

Only the latest release of Spoolman NG receives security fixes. The original upstream project (Donkie/Spoolman ≤ 0.23.1) is no longer maintained; upgrade to a current Spoolman NG release to receive fixes.

Threat model

By default Spoolman has no authentication or authorization. It is designed to run on a trusted home/LAN network next to Klipper/Moonraker/OctoPrint, and the entire REST API — including endpoints that create data and write physical NFC tags — is open to anyone who can reach the port. An optional shared bearer token (SPOOLMAN_API_TOKEN) can be enabled to gate the /api/v1 surface (see Security & exposure); it is a single secret, not per-user accounts, and /metrics and the static web assets remain unauthenticated. Exposing an instance directly to the internet is not a supported configuration; see the README for recommended reverse-proxy/VPN setups.

Reports that assume an attacker who can already reach the API (e.g. "an unauthenticated user can create spools") therefore describe intended behavior, not a vulnerability. In scope are, for example: bugs that let a crafted request escape the API's data model (SQL injection, path traversal, SSRF via EXTERNAL_DB_URL/3DFP fetching), cross-site attacks against the web client (XSS, CSRF that a reverse proxy would not stop), denial of service through malformed input (e.g. crafted NFC tag payloads), and vulnerabilities in the published Docker images.

Reporting a vulnerability

Please do not open a public issue for security problems. Instead, report privately via GitHub Security Advisories.

Include the version (or image tag), reproduction steps, and impact. You should receive an initial response within 14 days. Fixes are published as a regular release, credited to the reporter unless anonymity is requested.

There aren't any published security advisories