findings of the security review of stage 0
The review of 2c27275..2c8e981 (read-only, a separate agent) found no high or medium; three small ones, fixed here: - reauth took a limiter attempt before the compare, right password included: with A2 asking on every user save, ten saves in fifteen minutes locked the administrator out of Account's password change, the backup and the export. A right password now gives its attempt back (rateLimiter.Refund, Module.PasswordCheckPassed; a bucket already at its limit stays blocked). TestRightAccountPasswordsDoNotUseUpTheLimit. - LoggedPath hid the tokens of /login/reset/ and /confirm/ but not of the first administrator's /setup/<token>; now it does (test case added). - The entrypoint's own `[ -e ] || : >` lines (sender_login_maps, the four inbound maps, mail.log) get the `[ -L ]` guard postfix-config.sh got for I2. Safe before too - drop_links runs first on those paths and the panel is not running yet - this is the belt and braces. The review also confirmed, with a probe of the regex against Postfix's formats, that a port-25 client can place only its own envelope in an Inbound log row, and that every path to a password, e-mail or role asks for the signed-in password. go test ./internal/web/handlers ./internal/web/auth; sh -n entrypoint.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -503,7 +503,10 @@ operator can act on it.
|
||||
user and when a save sets a password, changes the e-mail (where reset
|
||||
links go) or changes the role - the signed-in user's own account included -
|
||||
and deleting a user asks for it too. A save of the name and the domain
|
||||
assignments alone is not asked: neither reaches an account's secret.
|
||||
assignments alone is not asked: neither reaches an account's secret. Only
|
||||
wrong passwords count against the limiter; a right one gives its attempt
|
||||
back, so an administrator adding users is not locked out of the next
|
||||
backup.
|
||||
- Both files are secrets: a full backup carries DKIM keys, `sasldb2`, the
|
||||
panel users' password hashes, `docker-compose.yml`, `.env`, and the TLS
|
||||
private key from `certs/` when present; a domain export carries the DKIM key
|
||||
|
||||
Reference in New Issue
Block a user