Fwd: Huge header detection

Bron Gondwana brong at fastmail.fm
Mon Feb 9 06:02:37 EST 2009


On Mon, Feb 09, 2009 at 10:24:38AM +0000, Ian Eiloart wrote:
>
>
> --On 7 February 2009 02:36:36 -0200 Carlos Horowicz  
> <carlos.horowicz at gmail.com> wrote:
>
>> I'm wondering what to do in a live system with may be hundreds of
>> thousands of these strange e-mails already in users´ mailboxes,

My god, that many?  Nuke it from orbit.  Only way to be sure.

(alternative plan, grep for the bogus files, unlink them and
reconstruct the mailboxes - cheaper and less radioactive)

>> Should imapd be patched so that it just ignores the repetitions , both
>> when building cyrus.cache and when it returns the headers to a client
>> ? or should imapd really modify the original e-mail by stripping
>> unnecessary/illegal headers and store a cleaned-up version ?
>
> It shouldn't be modifying messages. It should handle such messages  
> elegantly. Ignoring repetitions (beyond a threshold of repeats) seems the 
> most sensible option. However, failing to report them to a client could  
> cause confusion, so a threshold should be reasonably high. Of course some 
> headers are supposed to have multiple instances...

Ditto with that.  This patch ignores repetitions beyond a threshold.  It
turns out that ignoring specific headers separately is hard[tm], but
just stopping parsing them after a count is way-easy.

> Alerting the system administrator to the existence of such bogus messages 
> seems like a good idea, too. Perhaps through the logging system.

Yeah, good point.  Allow me to add that.

> If you don't want a particular message in the system, then it should not 
> be accepted by LMTP or by any IMAP message creation mechanism.

Ditto.  Gosh.  That makes 3 tunables.  The gods of tunable
non-proliferation will want my head for doing this:

maxcacheheaders_warn = 500
maxcacheheaders_skip = 1000 (same as the current patch)
maxcacheheaders_reject = 2000

Sound like reasonable defaults?  I'm tempted to make the _reject be '0'
(don't reject) by default.

Bron.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Max-header-lines-1000-by-default-to-avoid-supersi.patch
Type: text/x-diff
Size: 1336 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20090209/c88bc59d/attachment.bin 


More information about the Info-cyrus mailing list