Files
Paul HittandClaude Opus 5.5 842f11e952
ci / checks (pull_request) Successful in 12s
ci / swift (pull_request) Successful in 9m10s
ci / image (pull_request) Successful in 1m49s
ci / deploy (pull_request) Skipped
Security audit 2026-10-15: relay fixes
- Block list: a blocked account that is unlisted and not on the caller's
  buddy list comes back as "User #<id>" with an empty slug. Rows and shape
  are unchanged, so unblock still works in both apps.
- Vouching: a suspended account can no longer be issued a vouch (403
  account_suspended).
- Federation: outbound deposit, get and fetch run the outbound address
  guard, with allowlisted peers exempt as in PeerDirectory.
- Email: control characters in an address are refused as bad_email, and
  the mailer refuses such a recipient and strips them from headers.
- Key log: inclusion, consistency, device and subject reads are metered at
  3600 per address per hour each, like the head.

Not changed: email_taken stays (both apps map it), strict account tokens
stay off until the account service stamps iss, aud and jti, and the
credential and current-password hardening needs an app update first.

swift test: 1015 of 1015 pass, 6 new.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:21:34 -04:00
..