WS-D1 Reject TlsMode::Plain to non-loopback hosts (quick win, ship first) #297

Closed
opened 2026-07-31 18:14:24 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-31 18:14:24 +00:00 (Migrated from github.com)

AccountConfig::validate silently allows cleartext creds to remote hosts today. Size S.

Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.

AccountConfig::validate silently allows cleartext creds to remote hosts today. Size S. Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
KofTwentyTwo commented 2026-07-31 18:35:17 +00:00 (Migrated from github.com)

Delivered via PR #335 (WS-D1, squash-merged to dev). AccountConfig::validate now rejects cleartext credentials to remote hosts on BOTH paths: imap/smtp TlsMode::Plain to a non-loopback host, AND a CalDAV collection_url with http:// to a non-loopback host (the latter caught by the automated push security review as a HIGH). Loopback (127/8, ::1, localhost) cleartext still allowed for local test servers; https to any host allowed. Shared is_loopback_host helper + new ConfigError::CleartextToRemoteHost. Tests for both. Resolves the security-review 'Sibling Validator Asymmetry / Plaintext Transport of Credentials' finding.

Delivered via PR #335 (WS-D1, squash-merged to dev). AccountConfig::validate now rejects cleartext credentials to remote hosts on BOTH paths: imap/smtp TlsMode::Plain to a non-loopback host, AND a CalDAV collection_url with http:// to a non-loopback host (the latter caught by the automated push security review as a HIGH). Loopback (127/8, ::1, localhost) cleartext still allowed for local test servers; https to any host allowed. Shared is_loopback_host helper + new ConfigError::CleartextToRemoteHost. Tests for both. Resolves the security-review 'Sibling Validator Asymmetry / Plaintext Transport of Credentials' finding.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#297