Skip to content

Security: felixapel/book-translator-hub

SECURITY.md

Security Policy

Supported Versions

Only the latest release (and main) receives security fixes.

Reporting a Vulnerability

Please report vulnerabilities privately via GitHub Security Advisories ("Report a vulnerability" on the repository's Security tab) rather than a public issue. If that form is unavailable, email felixguillermoapel@gmail.com with the subject eBook Translate security report. Do not include credentials, session cookies, book text, or provider keys unless we explicitly arrange a safe transfer. You should get a first response within 7 days.

Scope notes for self-hosters

  • The API fails startup by default unless an authentication authority is configured. The universal hub uses reader-session exchange for CWA and Kavita. Managed split installs also support native CWA sessions or forwarded behind an identity proxy whose exact peer is allowlisted. token is a shared- tenant compatibility mode; disabled is development-only.
  • In forwarded mode the identity proxy must strip incoming X-BT-Subject and X-BT-Roles before setting trusted values. Never publish a bypass route to the API. The bundled injection proxy strips these headers and cannot serve as the trusted identity hop; route /bt-api directly through the identity proxy. In cwa_session mode credentialed CORS permits exact configured origins only; a private-subnet wildcard is deliberately ignored. The CWA probe must target the exact authenticated /ajax/emailstat path and return a bounded JSON task list. Browser requests omit cookies entirely in token and forwarded modes.
  • Provider API keys remain in the private server-side environment supplied to the container and are never sent to reader configuration or browser storage. Protect environment files as secrets, restrict cloud keys to the required API and never use a consumer subscription/browser session as an API credential. Cache schema v2 stores translated results and one-way source/scope hashes, not source paragraphs, raw identities, or reader credentials. Provider prompts still leave the host when a cloud provider is configured; see the fallback/privacy warning in the configuration guide.

There aren't any published security advisories