[ mailman-Patches-850805 ] Aggressive anti email address harvesting measure

SourceForge.net noreply at sourceforge.net
Sun Nov 14 01:41:16 CET 2004

Patches item #850805, was opened at 2003-11-28 17:23
Message generated for change (Comment added) made by olaf
You can respond by visiting: 

Category: Pipermail
Group: Mailman 2.1
Status: Open
Resolution: Postponed
Priority: 5
Submitted By: Richard Barrett (ppsys)
Assigned to: Nobody/Anonymous (nobody)
Summary: Aggressive anti email address harvesting measure

Initial Comment:
This patch is prompted by discussion on the mailman-
developers list won the following subject:

Re: [Mailman-Developers] bugtraq submission warning: 
email address harvesting exploit

For those with deep concerns about email address harvesting 
this patch offers a more aggressive masking of email 
addresses in Mailman mail archive files.

The patch modifes two files in the standard Mailman 
distribution: Mailman/Defaults.py and Mailman/Cgi/
private.py and can be applied using the following command 
from within the Mailman build directory:

    path -p1 < path-to-patch-file
It would be fairly trivial to make enabling this feature per-
list configurable rather than it being a site admin decision 
and I will enhance this patch for that purpose if people show 
an interest in it being done.

The following notes about the patch can be found in 
Defaults.py. Rather idiosyncratically most of the operational 
elements of this patch are in that file. My reasoning behind 
this decision is that if people want to fool with the regexes 
that are at the heart of this patch they can see what will be 
affected by the changes more readily if the related bits are 
in the same place.

# Anti-spam email address harvesting prevention measures.
# These measures are to limit the ability of spam generators 
to acquire
# email address from archived material in Mailman's list 
# Implementation is via a dynamic search and replace for 
# addresses, appearing in files of MIME type text/html or 
text/plain, as
# those files are requested. The underlying archive file 
content as 
# generated by the archiving software remains unchanged.
# The implementation requires that archive files are all 
delivered by a
# modified private.py CGI script which only requires user 
# if the list whose archive material is being requested is set 
up as a private
# list. In order to get public archives served by private.py a 
# like this:
#     RewriteRule ^/pipermail/(.*) /mailman/private/$1 [PT]
# needs to be used in the Apache httpd.conf to transparently 
# public arechive file requests.
# When email addresses are found, the domain part of the 
addressed is replaced
# with a string of 'x' characters. If the local part of the 
address appears to 
# have been VERP'ed then the VERP information is similarly 
obscured. This is
# a fairly brutal set of irreversible modifications to any 
email addresses in 
# the returned text and will break any mailto: links in the 
# Th eamil address regex looks for either an '@' character 
or its HTML escaped
# version '%40' as the local-part/domain separator. You 
should set
# ARCHIVER_OBSCURES_EMAILADDRS = 0 and run bin/arch 
to rebuild existing archives 
# to prevent that feature interfering with the operation of 
these harvesting 
# prevention measures.
# If you decide to change the regexes then copy all of this 
stuff into
# mm_cfg.py and make the changes there.


Comment By: O.S. (olaf)
Date: 2004-11-14 01:41

Logged In: YES 

please, make these harvesting prevention measures per list configurable.


Comment By: Tokio Kikuchi (tkikuchi)
Date: 2004-11-14 01:28

Logged In: YES 

Sorry, patch itself is for 2.1 (not 3.0).


Comment By: Tokio Kikuchi (tkikuchi)
Date: 2004-11-14 01:27

Logged In: YES 

It looks nice but it may be too much for 2.1.x where the
archives are generated static. Also, I'm a little bit
anxious writing such a function in Defaults.py. It would be
better to include this feature in 3.0 or later.


Comment By: Martin Mokrejs (mmokrejs)
Date: 2004-04-20 11:52

Logged In: YES 

Ohh, sorry, the patch really wasn't applied. After proper
installation, I can confirm it works fine.


Comment By: Martin Mokrejs (mmokrejs)
Date: 2004-04-20 02:00

Logged In: YES 

What sould I do with this error caused by the patch?

Traceback (most recent call last):
  File "/usr/local/mailman/scripts/driver", line 87, in run_main
  File "/usr/local/mailman/Mailman/Cgi/private.py", line
165, in main
AttributeError: 'module' object has no attribute 'deny_harvest'


Comment By: Richard Barrett (ppsys)
Date: 2003-11-30 08:02

Logged In: YES 

As pointed out on the mailman-developers list, potential users of 
this patch should be aware that the simple approach to masking 
email addresses used by this patch will also capture and munge 
any other strings in the archive data that resemble email 
addresses. This can include mailto URLs, other URLs and Message 
ids. This side-effect may make the patch unsuitable for use with 
your system, although you also need to consider that the patch 
does not irreversibly change the source pipermail archived 
material held on the server; the changes are only made in the 
copy of the archive material sent to the requesting browser by the 


You can respond by visiting: 

More information about the Mailman-coders mailing list