Rootless podman migration (TASK-11): - Remove sudo from all podman calls in PodmanClient + 8 backend files - Remove sudo from all podman/docker calls in deploy script - Restore full systemd security hardening: NoNewPrivileges, RestrictAddressFamilies, MemoryDenyWriteExecute, RestrictRealtime, RestrictNamespaces, RestrictSUIDSGID, SystemCallFilter, ProtectSystem=strict - Enable loginctl linger for rootless container persistence - Remove Ollama from auto-deploy (marketplace-only) Session & auth hardening: - Increase MAX_CONCURRENT_SESSIONS 20→50 (prevents eviction storms) - Debounced 401 redirect in rpc-client.ts (prevents redirect storms) Boot stability: - optimize-debian.sh: adds chrony, swap, removes policy-rc.d - deploy script: pre-restart chrony + swap setup - ISO build: chrony package, swap file creation - BootScreen: no longer clears localStorage (prevents splash replay) - RootRedirect: sole owner of localStorage clearing on server ready UI fixes: - Sidebar opacity default changed from 0→visible (fixes missing sidebar after page-persistence login without entrance animation) - Console.log/error wrapped in import.meta.env.DEV guards - Remove unused route import from RootRedirect Beta tracking: - CLAUDE.md: beta freeze protocol added - MASTER_PLAN.md: TASK-11, TASK-17, phase structure - BETA-PROGRESS.md: initial tracking doc - Tagged v1.2.0-alpha.1 as pre-rootless baseline Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Authentication & Authorization Assessment Complete
15 findings identified across the Archipelago auth surface. Here's the breakdown:
Critical (P0) — Fix immediately
- AUTH-001: Production systemd service has
ARCHIPELAGO_DEV_MODE=true—password123is a valid login credential andSecurecookie flags are disabled - AUTH-002:
/lnd-connect-infoexposes the full LND admin macaroon (Lightning node control) without any authentication, withCORS: * - AUTH-011: Nginx AIUI proxy only checks
$cookie_session != ""— any non-empty string bypasses auth to the Claude/OpenRouter API proxies
High (P1) — Fix before beta
- AUTH-003:
remembercookie (30-day TTL) not cleared on logout — stolen token auto-restores sessions indefinitely - AUTH-004: CSRF validation explicitly skipped on remember-me session auto-restore — enables single-request CSRF attacks
- AUTH-007/008: Federation
peer-joinedandpeer-address-changedaccept arbitrary DIDs without cryptographic proof — attacker can inject fake trusted peers or redirect peer traffic
Medium (P2)
- AUTH-005: Rate limit bypass via
X-Real-IPspoofing on direct port 5678 access - AUTH-006:
/contentleaks file catalog (names, sizes, UUIDs) without auth - AUTH-009:
federation.get-stateleaks installed apps/versions without auth - AUTH-010:
backup.restore-identitycan overwrite node identity even after setup
Positives
Session management is otherwise solid: 256-bit tokens, SHA256 server-side storage, bcrypt passwords, TOTP with Argon2id+ChaCha20 three-layer encryption, proper session rotation, and replay protection. The core auth architecture is good — these are mostly configuration issues and missing auth checks on specific endpoints.
Full report written to loop/pentest/analysis/auth.md.