Harden inbound SMTP production policy #11

Merged
ober merged 1 commit from security/prod-hardening into main 2026-08-21 12:03:10 -04:00
Owner

Implements the production SMTP hardening plan across inbound policy, DNS-backed sender authentication, reputation checks, DKIM/DMARC, and larger validated DATA handling.

Highlights:

  • Fixes per-IP rate limiting and streaming DATA terminator handling.
  • Adds local-sender spoof rejection, strict HELO, RCPT failure limits, MAIL SIZE rejection, and VRFY hardening.
  • Adds TXT/PTR DNS support, SPF, DNSBL, FCrDNS, DKIM verification, and DMARC enforcement.
  • Prepends Received and Authentication-Results headers and enforces From/hop-count sanity.
  • Raises max_message_bytes default/ceiling to 35 MiB with host-side DATA validation above the WASM 64 KiB path.
  • Keeps outbound STARTTLS fail-closed because the current rustls client API does not expose verified STARTTLS upgrade of an existing SMTP socket.

Verification:

  • jerboa_verify on changed Scheme surfaces
  • make test
  • make binary
  • make release-evidence
  • jerboa_security_scan changed lines (remaining findings are test-only false positives)
Implements the production SMTP hardening plan across inbound policy, DNS-backed sender authentication, reputation checks, DKIM/DMARC, and larger validated DATA handling. Highlights: - Fixes per-IP rate limiting and streaming DATA terminator handling. - Adds local-sender spoof rejection, strict HELO, RCPT failure limits, MAIL SIZE rejection, and VRFY hardening. - Adds TXT/PTR DNS support, SPF, DNSBL, FCrDNS, DKIM verification, and DMARC enforcement. - Prepends Received and Authentication-Results headers and enforces From/hop-count sanity. - Raises max_message_bytes default/ceiling to 35 MiB with host-side DATA validation above the WASM 64 KiB path. - Keeps outbound STARTTLS fail-closed because the current rustls client API does not expose verified STARTTLS upgrade of an existing SMTP socket. Verification: - jerboa_verify on changed Scheme surfaces - make test - make binary - make release-evidence - jerboa_security_scan changed lines (remaining findings are test-only false positives)
Harden inbound SMTP production policy
All checks were successful
version-policy / required (pull_request) Successful in 2s
required-ci / required (pull_request) Successful in 10m11s
737d42326c
ober scheduled this pull request to auto merge when all checks succeed 2026-08-21 12:02:49 -04:00
ober merged commit a3f2b02d6c into main 2026-08-21 12:03:10 -04:00
ober referenced this pull request from a commit 2026-08-21 12:03:12 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-smtp!11
No description provided.