Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sieve: allow private Final-Recipient in rejects, allow non-Original-Recipient header for original recipient. #5162

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

rjbs
Copy link
Collaborator

@rjbs rjbs commented Dec 9, 2024

This replaces a longstanding private commit in Fastmail's Cyrus, which replaces Final-Recipient with an encrypted version of the original recipient. The goal is to provide a string that can be traced back to a recipient by the Cyrus operator, but doesn't disclose the final delivery username to the bounce recipient.

Using session_id should accomplish the same result, at least if logs are maintained. It's also a lot less complex than shipping our own little RC4 implementation!

This then replaces another private commit, allowing the Sieve rejection code to pluck the original recipient from a header other than Original-Recipient.

@rjbs rjbs force-pushed the cyr-1422-private-mdn branch from 894b2ad to a04620e Compare December 9, 2024 14:55
@rjbs rjbs requested a review from wolfsage December 9, 2024 15:54
@rjbs rjbs marked this pull request as ready for review December 9, 2024 15:54
@rjbs
Copy link
Collaborator Author

rjbs commented Dec 9, 2024

Shouldn't merge until v3.12 forked. Will require tweak to Fm internal builds.

@wolfsage
Copy link
Contributor

wolfsage commented Dec 9, 2024

lgtm, but I think we also need a changes/next/* entry? Like b48001d

@rjbs
Copy link
Collaborator Author

rjbs commented Dec 9, 2024

lgtm, but I think we also need a changes/next/* entry? Like b48001d

Great catch, thank you.

@rjbs rjbs requested a review from elliefm December 9, 2024 21:51
Copy link
Contributor

@elliefm elliefm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One nit about four-space indents, but I'm approving it now because it does not need my re-review once that's fixed.

imap/lmtp_sieve.c Outdated Show resolved Hide resolved
changes/next/private_sieve_mdn Outdated Show resolved Hide resolved
@elliefm
Copy link
Contributor

elliefm commented Dec 10, 2024

Shouldn't merge until v3.12 forked. Will require tweak to Fm internal builds.

I'll add the Do Not Merge label so it (hopefully) doesn't get merged accidentally

This replaces a longstanding private commit in Fastmail's Cyrus, which
replaces Final-Recipient with an encrypted version of the original
recipient.  The goal is to provide a string that can be traced back to a
recipient by the Cyrus operator, but doesn't disclose the final delivery
username to the bounce recipient.

Using session_id should accomplish the same result, at least if logs are
maintained.  It's also a lot less complex than shipping our own little
RC4 implementation!
@rjbs rjbs force-pushed the cyr-1422-private-mdn branch from 631cb1e to 2bddca9 Compare December 16, 2024 15:39
@rjbs rjbs changed the title Sieve: allow private Final-Recipient in rejects Sieve: allow private Final-Recipient in rejects, allow non-Original-Recipient header for original recipient. Dec 16, 2024
@rjbs rjbs force-pushed the cyr-1422-private-mdn branch 2 times, most recently from f69efad to a976fab Compare December 16, 2024 15:53
@rjbs rjbs requested a review from wolfsage December 16, 2024 15:53
This eliminates custom code in Fastmail builds.
@rjbs rjbs force-pushed the cyr-1422-private-mdn branch from a976fab to 649c4ee Compare December 16, 2024 16:19
@rjbs rjbs requested a review from wolfsage December 16, 2024 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants