===========================================================

Open Searchable Image Catalogue: XSS and SQL Injection Vulnerabilities

===========================================================

Technical University of Vienna Security Advisory

TUVSA-0605-001, May 30, 2006

===========================================================

Affected applications

----------------------

Open Searchable Image Catalogue (http://cosp.wordpress.com/tag/osic, http://sourceforge.net/projects/osic-win)

Versions 0.7 and prior.

Description

------------

There are a number of cross site scripting (XSS) vulnerabilities that are caused by the second echo statement in function do_mysql_query (core.php, line 544). If a database query fails for some reason, the query is reflected back to the user. Here are a few points where this situation can be exploited (if register_globals is active and if the current user is logged in as admin):

adminfunctions.php, line 531

http://localhost/osic07/admin.php?action=manageusers&username=neweviluse
r&password=xyz&confpass=xyz&realname='&type=<script>alert('hi')</script>

adminfunctions.php, line 561

http://localhost/osic07/admin.php?action=manageusers&id=777&username=new
eviluser&password=xyz&confpass=xyz&realname='&type=<script>alert('hi')</
script>

editcatalogue.php, line 523

http://localhost/osic07/admin.php?action=editcatalogue&op=additems&catal
ogue_id='<script>alert('hi')</script>&uploaded=true&submit=true&AddRemai
ning=true

[there has to be at least one file with a valid extension in the uploads directory]

editcatalogue.php, line 581

http://localhost/osic07/admin.php?action=editcatalogue&op=additems&catal
ogue_id=777&uploaded=true&submit=true&catalogue_id='<script>alert('hi')<
/script>

The above vulnerabilities are also SQL Injection vulnerabilities.

Some analogous cases in search.php:

search.php, line 120:

The $query variable can contain malicious user input due to the assignments on lines 90-112.

search.php, line 152:

$cf_query is tainted by $cfid, which is tainted by $tempCustomFieldID, which is tainted by $HTTP_POST_VARS (line 138).

search.php, lines 243-250:

There are calls to getValueFromID with $item_list as parameter, which can be controlled by an attacker.

Solution

---------

The authors have responded to our message quickly and have released version 0.7.0.1, which fixes the above issues.

Timeline:

March 30, 2006:

- Vulnerabilities reported to Chris Goerner.

- Response and release of fixed version.

- Advisory submission.

References

-----------

http://www.seclab.tuwien.ac.at/advisories/TUVSA-0605-001.txt

Nenad Jovanovic

Secure Systems Lab

Technical University of Vienna

www.seclab.tuwien.ac.at