Re: New release is HERE! Vexim 2.2.2 RC1, Google code, and more!

Mike Garratt <[email protected]> Fri, 14 May 2010 22:46:37 +1200
Newsgroups gmane.mail.exim.vexim.devel
Message-ID <[email protected]>
> Thank you! Some changelog would bee nice. 

I did keep a change log of all the work which Gordan and Avleen have 
both seen.

I am avoiding posting it here in full detail, because it would highlight 
specific issues that may not be immediately apparent if you are looking 
at a diff between releases.  *I strongly recommend that you either 
update or implement authentication at the webserver level using 
something like .htaccess files on apache until you get a chance - I am 
doing both on my server.*

A number of the changes are about improving the security posture of the 
entire php code, not necessarily fixing a specific vulnerability - I did 
a line by line review of the entire source twice over a period of 5 or 
so sessions.
I would email any changes from a session to Gordon, who would 
extensively perform targetted testing due to my limited time.  Then at 
the end Gordon went through and testing everything on the final exim4u 
source.
I then backported the changes from Exim4u into Vexim 2.2.1 (the php code 
is very similar at this stage).  I have to admit that while I am 
comfortable with the changes in Vexim, it hasn't had the level of 
testing the Exim4u source had.

At a high level, I would summarise some of the changes as follows:

    * Tighting of the code to ensure a domain postmaster account is only
      able to work with accounts in their own domain
    * Quoting in single quotes pretty much every variable in SQL
      statements to ensure consistency, and catch any observed or
      unobserved issues
    * The biggest outright change would be refactoring the login and
      authentication code to make it easier to audit and arguably more
      robust against potential attack - for example, notice how now the
      session variables are now populated out of the what was read from
      the database (instead of from session variables)... this approach
      was adopted so if someone could figure out how to do some kind of
      sql injection attack in the login processing (either now or via a
      human bug in a modified/later release) it would be a lot harder to
      get reserved characters like a single quote into session
      variables.  Let me just be clear - I didn't find a sql injection
      attack in the login code as it stood, but I decided to clean up
      the login/session creation/authorisation code so I could have a
      high degree of confidence I hadn't missed something there.  It was
      obvious the prior implementation that had evolved over time and
      had a few artifacts that didn't make much sense (such as doing
      more sql reads than necessary to login etc).
    * Fixed misaligned include files - e.g. the odd site php file was
      using authpostmaster instead of authsite - or something like
      that.  I think Gordon found the first instance of this.
    * Silly little things like preventing things like deleting the last
      admin account, when there was an admin alias in place.
    *  From memory I backported into vexim the code to tell you if
      standard users can login or not (I was using this for my testing,
      so was quicker for me to make the main siteadmin page show you
      this configuration setting).

I have tried to comment a lot of what I was doing, so a 
diff/winmerge/windiff with reveal specific changes in further detail.

- Mike

On 14/05/2010 6:03 p.m., Andrzej Zadrożny wrote:
> On 13.05.2010 21:24, Avleen Vig wrote:
>> With a *HUGE* thank you to Mike Garrett and Gordon Dickens who did all
>> of the work for this release.
>>
>> This is a big release, full of some quite critical security fixes.
>> This has been needed for a very long time, and I'm really glad they
>> were able to do this.
>
> Thank you! Some changelog would bee nice. 



_______________________________________________
Vexim mailing list
[email protected]
http://silverwraith.com/mailman/listinfo/vexim