SecurityTracker.com
    Home    |    View Topics    |    Search    |    Contact Us    |   

SecurityTracker
Archives


 


Category:   Application (E-mail Server)  >   @Mail Vendors:   CalaCode.com
@Mail Input Validation Holes Permit Cross-Site Scripting Attacks and POP3 Service Can Be Denied
SecurityTracker Alert ID:  1009208
SecurityTracker URL:  http://securitytracker.com/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

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 ) {$II1111II11111III++;
}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





Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2020, SecurityGlobal.net LLC