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 4c1c366b83e57d5ede93776218479316a3088ac9..a180cd5cd02342c05b3703dfb184b8c3daa917ee 100644 (file)
@@ -1204,6 +1204,26 @@ TMPDIR="/tmp"
 # SUPPORT_MOVE_FROZEN_MESSAGES=yes
 
 
+#------------------------------------------------------------------------------
+# 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.
index a36cfb0d240c97f0d7228065a291cb3d3fdd3b6d..bc983c444e5007608a88e4319c81fcc6c12cc666 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"