oss-sec mailing list archives
CVE request: PostfixAdmin SQL injections and XSS
From: Christian Boltz <oss-securrity () cboltz de>
Date: Thu, 26 Jan 2012 12:07:12 +0100
Hello,
we (the upstream PostfixAdmin developers) received a report about SQL
injections and XSS in PostfixAdmin.
Please assign a CVE number to those issues.
The issues are fixed in PostfixAdmin 2.3.5, which I'll release today or
tomorrow.
For reference, here's the changelog with all details:
- fix SQL injection in pacrypt() (if $CONF[encrypt] == 'mysql_encrypt')
- fix SQL injection in backup.php - the dump was not mysql_escape()d,
therefore users could inject SQL (for example in the vacation message)
which will be executed when restoring the database dump.
WARNING: database dumps created with backup.php from 2.3.4 or older might
contain malicious SQL. Double-check before using them!
- fix XSS with $_GET[domain] in templates/menu.php and edit-vacation
- fix XSS in some create-domain input fields
- fix XSS in create-alias and edit-alias error message
- fix XSS (by values stored in the database) in fetchmail list view,
list-domain and list-virtual
- create-domain: fix SQL injection (only exploitable by superadmins)
- add missing $LANG['pAdminDelete_admin_error']
- don't mark mailbox targets with recipient delimiter as "forward only"
- wrap hex2bin with function_exists() - PHP 5.3.8 has it as native function
If you are interested in the exact code changes, run
svn diff -r 1180:1335 https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/branches/postfixadmin-2.3
Severity: that's a good question, please judge yourself ;-)
The most critical part is probably the SQL injection in pacrypt() because it is
used in the login form, which means it's available to non-authentificated
users. On the positive side, I'd guess the mysql_encrypt encryption method is
used rarely.
The affected code in pacrypt() is ($pw was not escaped, $salt comes from the
database (the first 2 characters of the current hashed password)):
$res=db_query("SELECT ENCRYPT('".$pw."','".$salt."');");
or when hashing a new password
$res=db_query("SELECT ENCRYPT('".$pw."');");
db_query() is a wrapper that uses (depending on the configured database)
mysql_query, mysqli_query or pg_query.
The other issues are limited to authentificated users.
Gruß
Christian Boltz
--
So, Helm aufsetz und auf Steine wart ...
*werf* *Steine! Flache Steine! Runde Steine! Grosse Steine! Kleine Steine!* *Wer will noch mal, wer hat noch nicht?* [> Manfred Tremmel und David Haller in suse-linux]
Current thread:
- CVE request: PostfixAdmin SQL injections and XSS Christian Boltz (Jan 26)
- Re: CVE request: PostfixAdmin SQL injections and XSS Kurt Seifried (Jan 26)
- Re: CVE request: PostfixAdmin SQL injections and XSS Christian Boltz (Jan 26)
- Re: CVE request: PostfixAdmin SQL injections and XSS Kurt Seifried (Jan 26)
- Re: CVE request: PostfixAdmin SQL injections and XSS Christian Boltz (Jan 27)
- Re: CVE request: PostfixAdmin SQL injections and XSS Christian Boltz (Jan 26)
- Re: CVE request: PostfixAdmin SQL injections and XSS Kurt Seifried (Jan 26)
