ietf-mta-filters
[Top] [All Lists]

Re: [sieve] [draft-melnikov-sieve-external-lists] 3. Security Considerations, Paragraph 2

2009-09-07 07:07:00
On Sun, Sep 6, 2009 at 7:17 PM, Alexey
Melnikov<alexey(_dot_)melnikov(_at_)isode(_dot_)com> wrote:
Robert Burrell Donkin wrote:

On Thu, Aug 27, 2009 at 11:13 PM, Alexey
Melnikov<alexey(_dot_)melnikov(_at_)isode(_dot_)com> wrote:


Robert Burrell Donkin wrote:


<blockquote
cite='http://www.ietf.org/id/draft-ietf-sieve-external-lists-00.txt'>
A failure to retrieve data due to the server storing the external
list membership being down or otherwise inaccessible may alter the
result of Sieve processing.  So implementations SHOULD treat a
temporary failure to retrieve or verify external list membership in
the same manner as a temporary failure to retrieve a Sieve script.
For example, if the Sieve script is stored in the Lightweight
Directory Access Protocol (LDAP) and the script can't be retrieved
when a message is processed, then the agent performing Sieve
processing can, for example, assume that the script doesn't exist or
delay message delivery until the script can be retrieved
successfully.  External list memberships should be treated as if they
are a part of the script itself, so a temporary failure to retrieve
them should be handled in the same way as a temporary failure to
retrieve the Sieve script itself.
</blockquote>

how does this error handling behaviour improve security?


This improves consistency of Sieve processing.


i fail to see why this is seen as a security issue

could anyone provide an example illustrating how an attacker could use
an implementation inconsistency in error handling to compromise a
sieve server?


Consistency makes security analysis simpler.

IMHO this only merits at most a sentence describing how consistent
error handling was considered with security in mind

I suppose this can be moved out of the Security Considerations to another
section. How would you suggest to name such section?

clear error handling rules are important for implementors and a
consistent approach does make security analysis easier. this should be
moved to a section dealing with error handling.

If there is WG consensus to change this, then I would argue we would need
a
mechanism to detect membership verification failures using a new test (or
a
modifier to existing one).


what are the advantages of this new error handling language to that
already established in RFC 5228?


i fail to see the security reasoning justifying deviation from the
error handling laid down in the basic Sieve langauge specification

I actually disagree. The proposed error handling makes it consistent with
the base specification. The idea behind the text is as follows: if there is
a Sieve script that contains the list of all members in the script itself,
the Sieve script processing shouldn't change when the script is changed to
use external lists and all previously inlined members moved to an external
list.

the current solution does not achieve this aim

the base specification describes two clearly error handling
strategies. when a internal list is incorrect then either a compile
time or runtime error should be raised by the engine (as described in
the specification). the proposal adds a novel (and quite ill defined)
error type and therefore introduces a change in behaviour for some use
cases when a list is move from internal to external.

Besides, exactly the same wording was used in RFC 5490 and nobody in the WG
complained when it was last called.

IMHO a mistake in one specification should not be used to justify it's
propogation

perhaps better reviewing would have spotted this inconsitency with the
original sieve language specification

- robert
_______________________________________________
sieve mailing list
sieve(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/sieve