Multiple MetaDot Vulnerabilities [ All Versions ]

Type securityvulns
Reporter Securityvulns
Modified 2004-01-17T00:00:00


Vendor : Metadot Corporation URL : Version : MetaDot Portal && Earlier [ All Versions ] Risk : Multiple Vulnerabilities

Description: Metadot is a popular open source portal software (GPL) recognized for its revolutionary ease-of-use. It provides content management like file, page and link management, collaboration features like discussion forums and polls and personalization like My Yahoo. It is powered by Perl && MySQL. Users range from home users to government, banks, universities and even NASA ;)

SQL Injection Vulnerability: It may be possible for an attacker to influence SQL queries by passing unexpected data to certain variables including the "id" and "key" variable. Even if an attacker is not successful with influencing an SQL query he can cause the outputted error message to execute script into an unsuspecting users browser thus causing a Cross Site Scripting attack. Also, the SQL error messages reveal a great deal of data about the server. Below is an example error message. The URI used to create this error was'[Problem]

--[ Begin Error Message ]--------------------------------------------------------------------

sqlSelect: SQL statement:<BR><BR>SELECT userid, lastonline, sessioninfo FROM sessions WHERE sessionid=''[Problem]' Error: You have an error in your SQL syntax near '[Problem]' ' at line 1<BR><BR> at /home/sharem/metadot/metadot/

DBAccess::DBIObj::sqlSelect('DBAccess::MySQL=HASH(0x85de6a8)', 'userid, lastonline, sessioninfo', 'sessions', 'sessionid=\'\'[Problem]\'') called at /home/sharem/metadot/metadot/ line 129 DBAccess::sqlSelect('DBAccess', 'userid, lastonline, sessioninfo', 'sessions', 'sessionid=\'\'[Problem]\'') called at /home/sharem/metadot/metadot/ line 508 Session::_initialize('Session=HASH(0xb1be85c)', '\'[Problem]') called at /home/sharem/metadot/metadot/ line 161 Session::restore('Session', '\'[Problem]') called at /home/sharem/metadot/metadot/Metadot/SessionHandler/ line 97 Metadot::SessionHandler::CookieSessionHandler::restore_session('Metadot::SessionHandler:: CookieSessionHandler=HASH(0x8c443f8)', '\'[Problem]')called at /home/sharem/metadot/metadot/Metadot/ line 63 Metadot::Authenticator::authenticate('Metadot::Authenticator::UserPassAuthenticator =HASH(0x9d34338)') called at /home/sharem/metadot/metadot/ line 3863 Portal::_web_init('Portal =HASH(0xb4c271c)') called at /home/sharem/metadot/metadot/Metadot/Implementations/Portal/ line 52 Metadot::Implementations::Portal::Default::initialize('Metadot::Implementations::Portal::Default', 'Portal =HASH(0xb4c271c)') called at /home/sharem/metadot/metadot/ line 2830 Portal::_initialize('Portal =HASH(0xb4c271c)') called at /home/sharem/metadot/metadot/ line 160 Portal::new('Portal', 1) called at /home/sharem/metadot/metadot/ line 43 Apache::ROOT::metadot::index_2epl::handler('Apache=SCALAR (0xb421470)') called at /usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Apache/ line 149 eval {...} called at /usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Apache/ line 149 Apache::Registry ::handler('Apache=SCALAR(0xb421470)') called at /dev/null line 0 eval {...} called at /dev/null line 0

Below are some examples URI's that will allow an attacker to influence queries, gather info or XSS.

/[Evil_Query] /[Evil_Query] /[Evil_Query]

Information Disclosure && Path Disclosure: There is a great deal of information given up by interrupting the SQL query, but can also be caused in other ways than the previously mentioned. Lets look at /[ValidID]&isa=Discussion&op= Where [ValidID] is should be a valid id number such as 1000 or whatever it may be.

--[ Begin Error Message ]--------------------------------------------------------------------

Software error: must provide operation name at /home/sharem/metadot/metadot/ line 196 Auditable::is_allowed_to_do('Discussion=HASH(0xae19218)', '', 'Metadot::User::FlexUser=HASH(0xb414f70)', 1) called at /home/sharem/metadot/metadot/ line 232 Apache::ROOT::metadot::index_2epl::handler ('Apache=SCALAR(0xacf893c)') called at /usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Apache/ line 149 eval {...} called at /usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Apache/ line 149 Apache::Registry::handler('Apache=SCALAR(0xacf893c)') called at /dev/null line 0 eval {...} called at /dev/null line 0

As you can see that will give you the server path, perl version and several other interesting bits of information. Path can also be disclosed by a bogus value in the "isa" variable. /

Cross Site Scripting: There are a number of potential cross site scripting issues in MetaDot. Below are some examples

/<iframe%20src=> /"><iframe%20src=> /'"><iframe%20src=>

Solution: The MetaDot team have addressed this issue and an update was supposed to be released on Thursday the 8th of January. Users of the MetaDot portal system are encouraged to upgrade immediately. Users can get the necessary security fixes provided by MetaDot Corporation at the link below.

Credits: Credits go to JeiAr of the GulfTech Security Research Team.