EXPAND_LISTMATCH_RHS plumbed into build makefiles. list_safety_merge_proposal
authorPhil Pennock <pdp@exim.org>
Sun, 25 Sep 2011 05:01:41 +0000 (01:01 -0400)
committerPhil Pennock <pdp@exim.org>
Sun, 25 Sep 2011 05:01:41 +0000 (01:01 -0400)
Tested builds both with and without this option, behaviour matches expectations.

src/src/EDITME
src/src/config.h.defaults

index 4c1c366..a180cd5 100644 (file)
@@ -1205,6 +1205,26 @@ TMPDIR="/tmp"
 
 
 #------------------------------------------------------------------------------
+# Expanding match_* second paramters: BE CAREFUL IF ENABLING THIS!
+# It has proven too easy in practice for administrators to configure security
+# problems into their Exim install, by treating match_domain{}{} and friends
+# as a form of string comparison, where the second string comes from untrusted
+# data. Because these options take lists, which can include lookup;LOOKUPDATA
+# style elements, a foe can then cause Exim to, eg, execute an arbitrary MySQL
+# query, dropping tables.
+# From Exim 4.77 onwards, the second parameter is not expanded; it can still
+# be a list literal, or a macro, or a named list reference.  There is also
+# the new expansion condition "inlisti" which does expand the second parameter,
+# but treats it as a list of strings; also, there's "eqi" which is probably
+# what is normally wanted.
+#
+# If you really need to have the old behaviour, know what you are doing and
+# will not complain if your system is compromised as a result of doing so, then
+# uncomment this option to get the old behaviour back.
+
+# EXPAND_LISTMATCH_RHS=yes
+
+#------------------------------------------------------------------------------
 # Disabling the use of fsync(): DO NOT UNCOMMENT THE FOLLOWING LINE unless you
 # really, really, really know what you are doing. And even then, think again.
 # You should never uncomment this when compiling a binary for distribution.
index a36cfb0..bc983c4 100644 (file)
@@ -51,6 +51,7 @@ it's a default value. */
 /* Both uid and gid are triggered by this */
 #define EXIM_UID
 #define EXPAND_DLFUNC
+#define EXPAND_LISTMATCH_RHS
 
 #define FIXED_NEVER_USERS         "root"