Background
Distinct from webhook SSRF (#426).
Problem
Email channel (server/services/notifications/channels/email.ts) configures Nodemailer with host/port/secure: port===465 only — no requireTLS for STARTTLS (587), enabling downgrade/cleartext risk.
Proposed solution
- Default
requireTLS: true for non-465
- Env to allow insecure lab SMTP only
- Document recommended SMTP settings in PRODUCTION.md
Acceptance criteria
Priority
P2 / Medium
Complexity
Small
Evidence
server/services/notifications/channels/email.ts
Background
Distinct from webhook SSRF (#426).
Problem
Email channel (
server/services/notifications/channels/email.ts) configures Nodemailer with host/port/secure: port===465only — norequireTLSfor STARTTLS (587), enabling downgrade/cleartext risk.Proposed solution
requireTLS: truefor non-465Acceptance criteria
Priority
P2 / Medium
Complexity
Small
Evidence
server/services/notifications/channels/email.ts