Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
|
|
|
|
|
|
|
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
|
|
|
|
Become a Partner and License Our Database or Notification Service
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Mail Input Validation Holes Permit Cross-Site Scripting Attacks and POP3 Service Can Be Denied
|
|
SecurityTracker Alert ID: 1009208
|
|
CVE Reference: GENERIC-MAP-NOMATCH
(Links to External Site)
|
Date: Feb 25 2004
|
Impact: Denial of service via network, Disclosure of authentication information, Disclosure of user information, Execution of arbitrary code via network, Modification of user information
|
Exploit Included: Yes
|
Version(s): 3.64
|
Description: Several vulnerabilities were reported in @Mail. A remote user can deny POP mail service. A remote user can conduct cross-site scripting attacks.
Dr_insane reported that the web mail 'showmail.pl' script does not properly validate user-supplied input in the 'folder' parameter.
A remote user can create a specially crafted URL that, when loaded by a target user, will cause arbitrary scripting code to be
executed by the target user's browser. The code will originate from the site running the @Mail software and will run in the security
context of that site. As a result, the code will be able to access the target user's cookies (including authentication cookies),
if any, associated with the site, access data recently submitted by the target user via web form to the site, or take actions on
the site acting as the target user. A demonstration exploit is provided:
/showmail.pl?Folder=<script>alert(document.cookie)</script>
It
is also reported that the 'Displayed Name' field in 'util.pl?func=settings' is affected.
It is also reported that a remote user
can establish approximately 600 connections to the POP3 service to deny service to POP3 users.
The original advisory is available
at:
http://members.lycos.co.uk/r34ct/main/@mail_3.64/@mail_3.64.txt
|
Impact: A remote user can cause the POP3 service to become unusable.
A remote user can access the target user's cookies (including authentication
cookies), if any, associated with the site running the @Mail software, access data recently submitted by the target user via web
form to the site, or take actions on the site acting as the target user.
|
Solution: No solution was available at the time of this entry.
|
Vendor URL: www.atmail.com/index.ehtml (Links to External Site)
|
Cause: Input validation error, Resource error, State error
|
Underlying OS: Windows (NT), Windows (2000), Windows (XP)
|
|
Message History:
None.
|
Source Message Contents
|
Date: Wed, 25 Feb 2004 13:57:55 -0500
Subject: http://members.lycos.co.uk/r34ct/main/@mail_3.64/@mail_3.64.txt
|
http://members.lycos.co.uk/r34ct/main/@mail_3.64/@mail_3.64.txt
@MAIL 3.64 SERVER Multiple Vulnerabilities
Release Date:
February 25, 2004
Severity:
Medium
Vendor:
www.atmail.com
Systems Affected:
Microsoft Windows NT 4.0 (all versions)
Microsoft Windows 2000 (SP3 and earlier)
Microsoft Windows XP (all versions)
Services Affected:
POP3 service (110)
Webmail service (8000)
Description of the product:
@Mail is a feature rich Email solution that allows users to access email-resources via the
web or a variety
of wireless devices. The software incorporates a complete email-server package to manage
and host user email
at your domain(s).Set up a complete turn-key WebMail and Email-Server solution for your
School, Portal, ISP or
Company. The software supports a wide range of Unix and Windows platforms with an optional
SQL database backend.
Installed on your dedicated or hosted server, @Mail gives you complete control. The
software includes the entire
source-code for greater flexibility and integration for your project requirements.
With simple installation and user migration tools, @Mail will have your Email service up
and running faster.
Secure Web-Administration is included for monitoring and configuration of the system.
Multiple vulnerabilities have been found:
(1) Cross site scripting problems (webmail service)
(2) DOS vulnerabilities (Pop3 service)
Technical Description:
(1) The first problem exists in the webmail service. The file "showmail.pl" takes a
parametre with the name "folder"
but it doesn't check correctly the values it can accept. eg:
/showmail.pl?Folder=<script>alert(document.cookie)</script>
,/showmail.pl?Folder=[sth]
-----snip----------------
if ( $II111I1I1III1I11 > "1327000" ) {$II111I1I1III1I11 = 0;
print $atmail->IIII11III1IIIII1(
"html/$atmail->{Language}/msg/poprelogin.html");$III1IIII111I1111->I11II1111II11I1I(
$I1111I11II1I111I, "Inbox", "Inbox" );$III1IIII111I1111->quit();last;
}else {print $atmail->IIII11III1IIIII1(
"html/$atmail->{Language}/msg/popmsgnum.html",msgnum => $I1111I11II1I111I,msize =>
$II111I1I1III1I11
);$III1IIII111I1111->I11II1111II11I1I( $I1111I11II1I111I, "Inbox", "Inbox"
);}}$III1IIII111I1111->quit();print <<_EOF;
<script language="JavaScript">
location.href='showmail.pl?Folder=Inbox';
</script>
_EOF
$atmail->I1IIIII11I11II1I();}else {$atmail->{MailType} = $atmail->{Mode};
}}my $III1IIII111I1111 = new Atmail::GetMail(
Username => $atmail->{username},Pop3host => $atmail->{pop3host},Password =>
$I1IIIIII1I1I1111->{password},Type => $atmail->{MailType},Mode =>
$atmail->{Mode});my $III1111IIIIII1II = $III1IIII111I1111->III1IIII1I11I111();if
($III1111IIIIII1II) {print $atmail->IIII11III1IIIII1(
"html/$atmail->{Language}/auth_misc.html",status => $III1111IIIIII1II
);$III1IIII111I1111->quit();$atmail->I1IIIII11I11II1I();}my (@II1I11I1I1I11II1) =
$III1IIII111I1111->I1II11I11II11I11();$var{folderbox} =
$III1IIII111I1111->III1I111111111I1( $var{folder}, @II1I11I1I1I11II1 );$var{folderbox} =
$III1IIII111I1111->II1I111111111111( $var{folderbox}, $atmail->{Language} );if (
$atmail->{LoginType} eq "simple" ) {foreach (@II1I11I1I1I11II1) {next
if ( $_ eq "Inbox" || $_ eq "Trash" || $_ eq "Sent"
|| $_ eq "Drafts" );next if( $_ =~ /Inbox.Sent|Inbox.Trash|Inbox.Drafts/i &&
$pref{imap_subdirectory} && $atmail->{MailType} eq "imap" );$var{folders} .=
$atmail->IIII11III1IIIII1( "html/$atmail->{Language}/simple/folderbar.html",folder => $_
);}}$var{folderbox} =~ s/value='Trash'/value='Trash' selected/g;
if ( $var{flag} && $II11I111I1111111[0] ) {my $I1I11111III1IIII = Atmail::SendMsg->new(
Account => "$atmail->{username}\@$atmail->{pop3host}",);foreach (@II11I111I1111111 ) {my
%db = $III1IIII111I1111->I1I1III1II1IIIII( $_, $var{folder}, 5
);$I1I11111III1IIII->I1I1IIIIIII111II( $db{EmailUIDL}, $var{flag}, 1 );}}elsif (
$II11I111I1111111[0] ) {foreach (@II11I111I1111111) {$III1IIII111I1111->I11II1111II11I1I(
$_, $var{folder}, $var{newfolder}, $atmail->{AutoTrash} );}if ( $II11I111I1111111[0] &&
$atmail->{MailType} =~ /pop3|imap/ )
{$III1IIII111I1111->quit();$III1IIII111I1111->III1IIII1I11I111();}}if (
$atmail->{MailType} =~ /pop3|imap/ ) {%IIII11111I1I1111 =
$III1IIII111I1111->I1I1III1III1I111( $var{folder} );}my @I11II1111I11II1I =
$III1IIII111I1111->II1II111I1II11I1( $var{folder}, $var{sort}, $var{order} );if (
$atmail->I1II1I1I1I1I1III('jump') ) {my $III1III111I11III =
$atmail->I1II1I1I1I1I1III('jump');my $II1IIII1I1111III =
$atmail->I1II1I1I1I1I1III('msgid');my $I111II11IIIIIIII =
$atmail->I1II1I1I1I1I1III('newwin');$atmail->I1IIIII11I11II1I() if ( !$II1IIII1I1111III
);my ( $I11II111I1I1IIII, $II1111II11111III );foreach (@I11II1111I11II1I) {my
$I1I1I11II1II1I1I = $_;
if ( $II1IIII1I1111III eq $I1I1I11II1II1I1I ) {$II1111II11111III = $I11II111I1I1IIII;
last;
}$I11II111I1I1IIII++;
}if ( $III1III111I11III eq "next" && $II1111II11111III <= $#I11II1111I11II1I )
{$II1111II11111III--;
}elsif ( $III1III111I11III eq "prev" && $II1111II11111III >= 0 ) {$II1111II11111 III++;
}elsif ( $III1III111I11III eq "start" ) {$II1111II11111III = $#I11II1111I11II1I;
}elsif ( $III1III111I11III eq "end" ) {$II1111II11111III = 0;
}$II1111II11111III = 0 if ( !$I11II1111I11II1I[$II1111II11111III] );print
"<html><head></head><body><script>location.href='reademail.pl?id=$ I11II1111I11II1I[$II1111II11111III]&folder=$var{folder}&newwin=$I111II11IIIIIIII';</script>< /body></html>";
$atmail->I1IIIII11I11II1I();}$var{total} = scalar(@I11II1111I11II1I);$var{prevtotal} =
$atmail->I1II1I1I1I1I1III('prevtotal');if($var{prevtotal} && $var{total} >
$var{prevtotal} ) {$var{newmailalert} = "<EMBED src='javascript/newmail.wav' width=0
height=0 autostart=true loop=false>
<script language='Javascript'>this.window.focus();</script>";
-----snip----------------
There are also some other XSS problems: http://[host]:8000/util.pl?func=settings (In the
field "Displayed Name" you
can insert Javascript code)
(2) If you try to establish about 600 connections with P0p3 computer will become unusable.
No more to expand on...
** These vulnerabilities work on the default installation of @mail server.
Pr00f of concept code:
sorry, nothing at the moment:)
Credit:
Dr_insane
Http://members.lycos.co.uk/r34ct/
Feedback
Please send your comments to: dr_insane@pathfinder.gr
|
|
Go to the Top of This SecurityTracker Archive Page
|