Great Circle Associates Majordomo-Users
(May 1995)
 

Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: Re: Preventing nonsubscribers from posting to a list
From: dwolfe @ risc . sps . mot . com (Dave Wolfe)
Date: Fri, 19 May 1995 14:28:00 -0500 (CDT)
To: uunet!ipas.afip.mil!sweeney (Nina Sweeney)
Cc: majordomo-users @ greatcircle . com (Majordomo user's mailing list)
In-reply-to: <9505191918.AA05581@ipas.afip.mil> from "Nina Sweeney" at May 19, 95 02:18:55 pm
Reply-to: David Wolfe <david_wolfe @ risc . sps . mot . com>

[ Nina Sweeney writes: ]
> How do I tell Majordomo not to post messages from people who
> are not subscribers to a list?  

In your list.config file:

        # restrict_post      [restrict_post] (undef) <resend>
        # If defined only address listed in one of the files (colon or space
        # separated) can post to the mailing list. This is less useful than it
        # seems it should be since there is no way to create these files if
        # you do not have access to the machine running resend. This mechanism
        # will be replaced in a future version of majordomo/resend.
restrict_post     =

In other words, set restrict_post = /path/to/the/list/file. The
biggest problem with this is that resend ignores Reply-To headers
while majordomo uses them. That means that if a user uses a Reply-To
header (that's different from his sending address) then resend doesn't
recognize him as a subscriber even though he receives list mailings.
Fixing resend is trivial (see below), but it presents a security problem
because then a malicious user who knows a legitimate subscriber address
can simply insert that address in a Reply-To header when mailing to
the list. Of course he won't receive any replies (even worse, the poor
subscriber whose address he used *will*), but resend allows him to crash
the (restricted) list masquerading as someone else (although he could
probably do this anyway by spoofing the mail headers, but that's a
little more difficult than simply telling his mailer to add a Reply-To
header).

Note that this is simply *a* patch, certainly not the optimal patch for
resend to recognize the Reply-To header:

> Date: Wed, 29 Mar 1995 17:30:03 -0800
> From: John Relph <uunet!presto.ig.com!relph>
> Subject: Reply-To as From?
> 
> I created a mailing list and specified that only people subscribed to
> the list can send to it (restrict-post = listfile).  One thing I
> noticed is that many subscribers have a different actual e-mail
> address ("From") than the one they have specified as their
> subscription address, and that these users tended to specify their
> subscription address as their "Reply-To" address.
> 
> So I thought to myself, why not check the user's "Reply-To" address
> against the list (in addition to checking their "From" address)?  Yes,
> I realize there might be a small price to pay in insecurity, but what
> the hell...
> 
> On that note, here are the changes to "resend" (1.93).  Oh, there are
> also some headers I additionally chose to ignore.
> 
> 	-- John
> 
> ---- cut here ----
> *** resend.ORIG	Wed Mar 29 17:22:46 1995
> --- resend	Wed Mar 29 17:21:52 1995
> ***************
> *** 191,198 ****
>   		|| /^sender:/i
>   		|| /^return-receipt-to:/i
>   		|| /^errors-to:/i
>   		|| /^return-path:/i
> - 		|| (/^reply-to:/i && defined($opt_r))	# skip only if "-r" set
>   		|| (/^precedence:/i && defined($opt_p))	# skip only if "-p" set
>   		|| (/^received:/i && defined($opt_R))	# skip only if "-R" set
>   		|| (/^\s/ && ! $kept_last)		# skip if skipped last
> --- 191,201 ----
>   		|| /^sender:/i
>   		|| /^return-receipt-to:/i
>   		|| /^errors-to:/i
> + 		|| /^flags:/i
> + 		|| /^resent-/i
> + 		|| /^priority/i
> + 		|| /^x-pmrqc:/i
>   		|| /^return-path:/i
>   		|| (/^precedence:/i && defined($opt_p))	# skip only if "-p" set
>   		|| (/^received:/i && defined($opt_R))	# skip only if "-R" set
>   		|| (/^\s/ && ! $kept_last)		# skip if skipped last
> ***************
> *** 227,232 ****
> --- 230,242 ----
>   			 s/^subject:\s*/Subject: $foo /i if !/$foo_pat/;
>   			}
>   
> + 		    if ( /^reply-to:\s*(.+)/i ) {
> + 			$reply_to = $1;
> + 			if (defined($opt_r)) { # skip only if "-r" set
> + 			    $kept_last = 0;
> + 			}
> + 		    }
> + 
>   		    if ( /^from:\s*(.+)/i )
>   		    {
>   			$from = $1;
> ***************
> *** 333,338 ****
> --- 343,357 ----
>                   $infile = 1;
>                   last;
>               }
> + 	    elsif ( defined($reply_to) && open (LISTFD, "<${file}") != 0 ) {
> + 		@output = grep (&addr_match($reply_to, $_), <LISTFD>);
> + 		close (LISTFD);
> + 
> + 		if ( $#output != -1 ) {
> + 		    $infile = 1;
> + 		    last;
> + 		}
> + 	    }
>           } else {
>   	    die("resend:a Can't open $file: $!");
>   	}

-- 
 Dave Wolfe    *Not a spokesman for Motorola*  (512) 891-3246
 Motorola MMTG  6501 Wm. Cannon Dr. W. OE112  Austin  TX  78735-8598


Follow-Ups:
References:
Indexed By Date Previous: [no subject]
From: theresa@nytimes.com (Theresa Zhiyuan Liu)
Next: Re: digests taking a long time to send (fwd)
From: Vince - IE - Experimental Mail Server Admin Acct <mailserv@mail.nws.orst.edu>
Indexed By Thread Previous: Preventing nonsubscribers from posting to a list
From: sweeney@ipas.afip.mil (Nina Sweeney)
Next: Re: Preventing nonsubscribers from posting to a list
From: Doug Birdzell <dougb@iron.butterfly.net>

Google
 
Search Internet Search www.greatcircle.com