[UNIX] Cerberus Helpdesk Vulnerabilities
- From: SecuriTeam <support@xxxxxxxxxxxxxx>
- Date: 19 Dec 2005 18:41:23 +0200
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion
The SecuriTeam alerts list - Free, Accurate, Independent.
Get your security news from a reliable source.
http://www.securiteam.com/mailinglist.html
- - - - - - - - -
Cerberus Helpdesk Vulnerabilities
------------------------------------------------------------------------
SUMMARY
<http://www.cerberusweb.com/> Cerberus Helpdesk is "a WebGroup Media
helpdesk suite based in PHP environment". Multiple security flaws have
been found in Cerberus Helpdesk, these flaws allow remote attackers to
trigger SQL injection and cross site scripting vulnerabilities.
DETAILS
Vulnerable Systems:
* Cerberus GUI version 2.649
* Cerberus Support Center versions 2.649 up to 3.2.0pr2
Support Center:
An SQL injection in attachment_send.php (line 112):
You can download files from other users or use blind SQL injection
attacks:
Example:
../support-center/cerberus-support-center/attachment_send.php?file_id=N
[SQL] &thread_id=1
Vulnerable code:
$sql = "SELECT part_content FROM thread_attachments_parts WHERE file_id =
$file_id";
XSS:
http://server/support-center/index.php?mod_id=2&
kb_ask=%3Cscript%3Ealert%28%22XSS%22%29%3C%2Fscript%3E
Cerberus-gui (parser-related):
There are few SQL injections if XML is maliciously generated:
1) SQL injections in email_parser.php:
Function: "is_queue_address" (line: 1397) doesn t check properly the
"$addy" value.
Vulnerable code:
$sql = sprintf("SELECT q.queue_name, q.queue_mode,
q.queue_email_display_name, ".
"qa.queue_addresses_id, qa.queue_id, qa.queue_address, ".
"qa.queue_domain, q.queue_prefix, q.queue_response_open, ".
"q.queue_send_open, q.queue_response_gated ".
"FROM queue_addresses qa ".
"LEFT JOIN queue q USING (queue_id) ".
"WHERE LOWER(qa.queue_address) = '%s' ".
"AND LOWER(qa.queue_domain) = '%s'",
strtolower($mailbox),
strtolower($domain)
Function: "is_banned_address" (line: 752) doesn't check "$address"
properly.
Vulnerable code:
SELECT a.address_banned FROM address a WHERE a.address_address =
'".$address."'";
Function: "is_admin_address" (line 1532) you can bypass this function
using, as an email address, the following query:
"'OR'u.user_superuser'='1'--".
Example of result of this query:
SELECT u.user_id FROM user u WHERE u.user_email != '' AND u.user_email =
'' OR u.user_superuser = '1'
Vulnerable code:
SELECT u.user_id FROM user u WHERE u.user_email != '' AND u.user_email =
'$address'";
2) SQL injection in structs.php:
Function: "cer_email_address_struct" (line: 167) doesn t check the
following query.
Vulnerable code:
$sql = "SELECT a.address_id,a.address_banned FROM address a WHERE
a.address_address = '" . $a_address . "'";
Cerberus GUI:
1) SQL injection in cer_KnowledgebaseHandler.class.php:
Function: "_load_article_details" (line 270), you can fetch "superuser"
md5 password with blind sql injection.
Example:
/cerberus-gui/knowledgebase.php?mode=view_entry&root=2&
sid=c7bb6a0d5f83d61d75053c85c14af247&kbid=4 [SQL]
Vulnerable code:
$sql = "SELECT k.kb_id, k.kb_entry_date, k.kb_public, k.kb_category_id,
k.kb_keywords, kp.kb_problem_summary, kp.kb_problem_text,
kp.kb_problem_text_is_html, " .
" ks.kb_solution_text, ks.kb_solution_text_is_html, kc.kb_category_name,
u.user_login As entry_user, k.kb_avg_rating, k.kb_rating_votes " .
" FROM knowledgebase k LEFT JOIN knowledgebase_problem kp ON
(kp.kb_id=k.kb_id) LEFT JOIN knowledgebase_solution ks on
(ks.kb_id=k.kb_id) ".
" LEFT JOIN knowledgebase_categories kc ON
(kc.kb_category_id=k.kb_category_id) LEFT JOIN user u ON
(k.kb_entry_user=u.user_id) " .
" WHERE k.kb_id = " . $kbid;
2) SQL injection in "addresses_export.php":
Example:
POST:
/cerberus-gui/addresses_export.php?sid=c61ce82aa50569705dd774c33644446c&
queues%5B%5D=[ SQL ]&delimiter=comma&file_type=screen&form_submit=x
Vulnerable code:
$sql = "SELECT DISTINCT a.address_address FROM ticket t LEFT JOIN thread
th ON (t.min_thread_id=th.thread_id) LEFT JOIN address a ON
(th.thread_address_id=a.address_id) WHERE t.ticket_queue_id IN ($queues)
ORDER BY a.address_address ASC;";
3) SQL injection in "display.php". "$thread" is not checked
Vulnerable code:
$sql = "SELECT th.thread_address_id, a.address_address FROM thread th LEFT
JOIN address a ON (th.thread_address_id = a.address_id) ".
"WHERE th.thread_id = " . $thread;
4) SQL injection in "display_ticket_thread.php" (line 52):
Example:
/cerberus-gui/display_ticket_thread.php?type=comment&
sid=a640d024f84be01320aacb0ec6c87d74&ticket=[SQL]
Vulnerable code:
$sql = "SELECT t.ticket_id, t.ticket_subject, t.ticket_status,
t.ticket_date, t.ticket_assigned_to_id, t.ticket_queue_id,
t.ticket_priority, th.thread_address_id, ad.address_address,
t.queue_addresses_id, q.queue_name " .
"FROM ticket t, thread th, address ad, queue q " .
"WHERE t.ticket_queue_id IN ($u_qids) AND th.ticket_id = t.ticket_id AND
t.ticket_queue_id = q.queue_id AND th.thread_address_id = ad.address_id
AND t.ticket_id = " . $ticket . " GROUP BY th.thread_id LIMIT 0,1";
Disclosure Timeline:
15-20/Nov/2005 - Bugs discovered
11/Dec/2005 - The Author has been notified.
19/Dec/2005 - Full Disclosure
ADDITIONAL INFORMATION
The information has been provided by <mailto:aramosf@xxxxxxxxx> Alejandro
Ramos.
========================================
This bulletin is sent to members of the SecuriTeam mailing list.
To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@xxxxxxxxxxxxxx
In order to subscribe to the mailing list, simply forward this email to: list-subscribe@xxxxxxxxxxxxxx
====================
====================
DISCLAIMER:
The information in this bulletin is provided "AS IS" without warranty of any kind.
In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
- Prev by Date: [EXPL] Flatnuke Authentication Bypass (Exploit)
- Next by Date: [UNIX] Acidcat ASP CMS Multiple Vulnerabilities
- Previous by thread: [EXPL] Flatnuke Authentication Bypass (Exploit)
- Next by thread: [UNIX] Acidcat ASP CMS Multiple Vulnerabilities
- Index(es):
Relevant Pages
- [UNIX] PHP ip2long() Function Circumvention (miniBB)
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... PHP ip2long() Function
Circumvention ... In minibb case this could result in sql injection, ... Vulnerable
code in setup_mysql.php, near lines 99-105: ... (Securiteam) - [UNIX] Protector System Multiple Vulnerabilities
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... Several classes of vulnerabilities
have been found in Protector. ... cross-site scripting and SQL injection attacks.
... (Securiteam) - [UNIX] PhotoPost PHP Pro Multiple Vulnerabilities
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... PhotoPost PHP Pro suffers
from multiple SQL injection, ... There are plenty of SQL injection vulnerabilities
in PhotoPost PHP Pro. ... (Securiteam) - [REVS] Advanced Topics on SQL Injection Protection
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... SQL injection is now one
of the most common attacks in the Internet. ... Static query statement - Development Phrase
... Some programmers may think escaping apostrophe with two apostrophes (and ...
(Securiteam) - [UNIX] PHPNuke Multiple Vulnerabilities in Search Module
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... cross-site scripting and
SQL injections located throughout the ... The vulnerability exists in the ... The
first SQL injection vulnerability is a non-critical one in the ... (Securiteam)