25th Jan 2003 [SBWID-5951]
COMMAND
	SpamAssassin's spamc program in BSMTP mode could be tricked  for  remote
	execution
SYSTEMS AFFECTED
	SpamAssassin versions from 2.40 to 2.43 are affected
PROBLEM
	Timo Sirainen [[email protected]] says :
	Attacker may be able to execute arbitrary code by  sending  a  specially
	crafted e-mail to a system using SpamAssassin's spamc program  in  BSMTP
	mode (-B option).
	Exim users especially should check if they're affected,  the  -B  option
	is used in several Exim+SpamAssassin HOWTOs.
	The problem is with escaping '.' characters at the beginning  of  lines.
	Off-by-one bounds checking error allows writing  '.'  character  past  a
	buffer, overwriting the stack frame address. Depending  on  system  this
	may  be  exploitable.  Pre-built  Debian  unstable/x86  package   wasn't
	vulnerable, my self compiled was.
SOLUTION
	Get release 2.50 when available
	 Patch:
	 ======
	diff -ru spamassassin-2.43-old/spamd/libspamc.c
	
	spamassassin-2.43/spamd/libspamc.c
	--- spamassassin-2.43-old/spamd/libspamc.c	2002-10-15 18:22:49.000000000 +0300
	+++ spamassassin-2.43/spamd/libspamc.c	2002-12-27 20:19:36.000000000 +0200
	@@ -309,7 +309,7 @@
	       case MESSAGE_BSMTP:
	         total=full_write(fd, m->pre, m->pre_len);
	         for(i=0; i<m->out_len; ){
	-            for(j=0; i<m->out_len && j<sizeof(buffer)/sizeof(*buffer)-1; ){
	+            for(j=0; i<m->out_len && j<sizeof(buffer)/sizeof(*buffer)-2; ){
	                 if(i+1<m->out_len && m->out[i]=='\n' && m->out[i+1]=='.'){
	                     buffer[j++]=m->out[i++];
	                     buffer[j++]=m->out[i++];