26th Sep 2002 [SBWID-5310]
COMMAND
	PHPProjekt multiple remote vulnerabilities
SYSTEMS AFFECTED
	All versions below 3.2
PROBLEM
	Ulf Harnhammar [[email protected]] found the  following  vulnerabilities
	:
	1) Some of the scripts in the system require that  the  user  is  logged
	in, while others  don't.  The  system  differentiates  between  them  by
	checking the current  URL  in  the  variable  $PHP_SELF  to  see  if  it
	contains strings like "sms" (the name of one of the scripts  that  don't
	require logging  in  contains  that  string).  Unfortunately,  $PHP_SELF
	includes the PATH_INFO part of a request. This means that  we  can  fool
	the system into thinking that we are accessing  a  script  that  doesn't
	need logging in, while in fact we are  accessing  a  script  that  does.
	This is done by constructing a URL like
	
	http://www.somehost.com/phprojekt/mail/mail_send.php/sms
	
	where the PATH_INFO part is "/sms".
	2) The upload functions in the  system  don't  check  if  the  variables
	related to an upload actually were set by uploading a file  or  if  they
	are normal POST data. This can be used to  make  the  system  treat  any
	file it can read, like "/etc/passwd", as the uploaded data.
	3)  Many  SQL  statements  in  the  system  include  user  data  without
	enclosing it in apostrophes or quotes. This means that  much  more  data
	than intended can  be  deleted  or  changed.  If  the  system  uses  the
	parameter  "id"  in  the  string  "UPDATE  table  SET  name='Ulf'  WHERE
	intTableID=$id", giving "id" the value "intTableID" means that  we  will
	end up executing  the  statement  "UPDATE  table  SET  name='Ulf'  WHERE
	intTableID=intTableID". This statement will  change  all  names  in  the
	table to Ulf.
	4) Some of the scripts that should require logging  in  never  check  if
	you are in fact logged in. This means that a  person  with  insufficient
	privileges can view or edit data in the system,  by  posting  the  right
	data to those scripts.
	5) Files are accessed without proper checking of their  file  names  for
	slashes and dots. This means that we  can  read  files  outside  of  the
	PHProjekt     system     by      entering      file      names      like
	"../../../../../etc/passwd".
SOLUTION
	Get version 3.2 from http://www.phprojekt.com/