Skip to content

Torrentinel 0.9.9

Choose a tag to compare

@ib0ndar ib0ndar released this 25 Oct 16:32
· 21 commits to main since this release

Torrentinel 0.9.9 is a security release. Updating is recommended for every installation, especially those with more than one account.

Tracker pages are now always requested from the tracker's configured mirror: a direct subscription's address supplies only the page's path and query. Some subscription addresses could previously make the server request a different host, including addresses on the local network. The integrated browser now trusts only the tracker's own domains and the mirror each request is made for. Existing subscriptions need no change.

Sign-in no longer locks an account for everyone after repeated failures from different addresses. From 10 failures within 15 minutes, attempts on the account wait their turn, 1 second apart and doubling up to 10 seconds, so the right password still gets in after a short wait while guessing stays at about 100 attempts per account in 15 minutes. The limits per address are unchanged.

GET /api/health, which answers without signing in, now returns only {"status":"ok","database":"ready"} and queries the database. Monitoring that read its scheduler fields should use Administration or the signed-in GET /api/system/status. The supplied Docker, Compose and Quadlet health checks need no change.

Fastify 5.12.7, undici 8.12.3 and Zod 4.6.7 include upstream security fixes.

No configuration or database schema changes. Container images are available for linux/amd64 and linux/arm64 as bah0/torrentinel:v0.9.9 and latest.

Validation: 286 automated tests, run in both architecture image builds, a typechecked production build, and release metadata and Compose validation.

Both published architecture images passed isolated container checks covering the health response, first sign-in and password change, tracker addresses staying on the mirror, the integrated browser refusing a host it was not given, and the integrated-browser sandbox. GitHub CI passed. A rootless Podman installation upgraded from 0.9.8 kept its data intact and completed a full poll of all three trackers without errors.