Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 29 Dec 2012 12:45:05 +0100
From: "Jason A. Donenfeld" <Jason@...c4.com>
To: Kurt Seifried <kseifried@...hat.com>
Cc: oss-security@...ts.openwall.com, Frederick Townes <ftownes@...edge.com>
Subject: Re: CVE Request: W3 Total Cache - public cache exposure

On Sat, Dec 29, 2012 at 6:35 AM, Kurt Seifried <kseifried@...hat.com> wrote:
>
>
> As I understand it this is more of an .htaccess type issue than an
> actual issue with W3 total cache? Is this documented anywhere in the
> W3 total cache documents?
>

W3 generates .htaccess files and sets up the directory structure and
accesses. Nowhere is it documented that sysadmins should additionally
modify the .htaccess files to protect the cache, and W3's own htaccess
generation fails to protect it.


>
> > 2. Hash keys are easily predictable, in the case of (1) not
> > existing.
>
> explanation/algorithm/?
>

Sure:

        query_md5=md5("SELECT * FROM ${db_prefix}users WHERE ID =
'${user_id}'")
        key=md5("w3tc_${host}_${site_id}_sql_${query_md5}")
        url="
http://siteblabla/wp-content/w3tc/${key:0:1}/${key:1:1}/${key:2:1}/${key}"

"db_prefix" is by default "wp_", per wordpress config, and few people go in
and change that. "user_id" is an integer. IDs start at 1 and increase for
each added user. "site_id" is an integer that also starts at 1 and
increases for each site used in multi-site wordpress. "host" is the
hostname of the site. All of these values are known or guessable.



>
> > 3. Cached database values are downloadable by their hash keys on
> > the public internet, exposing sensitive information like password
> > hashes.
>
> Do they need to be downloadable? That is to say can these hash values
> be protected, or must they be exposed?
>

They _must_ be protected. They _must not_ be exposed or downloadable. The
hash values are raw SQL query responses, so they contain things like
password hashes. The cache is used only internally by the web application,
and client browsers should never have any direct contact with this cache.

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.