Slashdot Mirror


Popular Wordpress Plugin Leaves Sensitive Data In the Open

chicksdaddy writes in with a warning about a popular Wordpress plugin. "A security researcher is warning WordPress users that a popular plugin may leave sensitive information from their blog accessible from the public Internet with little more than a Google search. The researcher, Jason A. Donenfeld, who uses the handle 'zx2c4' posted a notice about the add-on, W3 Total Cache on the Full Disclosure security mailing list on Sunday, warning that many WordPress blogs that had added the plugin had directories of cached content that could be browsed by anyone with a web browser and the knowledge of where to look. The content of those directories could be downloaded, including directories containing sensitive data like password hashes, Donenfeld wrote. W3 Total Cache is described as a 'performance framework' that speeds up web sites that use the WordPress content management system by caching site content, speeding up page loads, downloads and the like. The plugin has been downloaded 1.39 million times and is used by sites including mashable.com and smashingmagazine.com, according to the WordPress web site."

54 comments

  1. hacked? by daver!west!fmc · · Score: 1

    So, did anyone else look at the linked page and see a big blob of text about payday loans? Kinda amusing for a site that bills itself as a "security ledger".

    1. Re:hacked? by SomePgmr · · Score: 4, Informative

      No. But here's a more direct explanation posted by Donenfeld: http://seclists.org/fulldisclosure/2012/Dec/242

    2. Re:hacked? by daver!west!fmc · · Score: 2

      Thanks, saw that, guess I'm used to having to click a couple times to get to actual info from a /. article. Turns out the big blob of text about payday loans only shows up for those of us who are picky about what sites we let run JavaScript code in our browsers. I guess it's just there for SEO link juice and is not intended to be seen by humans. But, security site using WordPress, pointing out WordPress plugin vulnerability, and is hacked, oh the hugh manatee!

    3. Re:hacked? by Anonymous Coward · · Score: 1

      proof (as if it were needed) that this cache plugin isn't the only vulnerability in wordpress.

      tfa site runs wordpress, site is hacked with some injected spam links, site posts article about (another) vulnerability in the very software they use. here's your sign

    4. Re:hacked? by X0563511 · · Score: 2

      SEO people need to be drawn and quartered. Assholes do nothing but pollute the web for their own gain.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    5. Re:hacked? by Anonymous Coward · · Score: 0

      Exactly, they go through the trouble of camouflaging their keyword spam, but they miss out on the fact that Google would like them better if they had a date of some kind in the url (for obvious blog posts or news articles).

    6. Re:hacked? by Anonymous Coward · · Score: 0

      Yes, it is hacked. Opening the website with a browser with the NoScript plug-in clearly shows that it is infected. There are about 13 lines of text and links at the start of the page, all about getting cheap credit: "Interest rate which may offer an age which 30 Day Payday Loan 30 Day Payday Loan is even less egregious in privacy." and so on. This text gets inmediately hidden by the pages script if allowed to run, hence why most people do not see it.

  2. nice source site by Anonymous Coward · · Score: 0

    page has a metric crap ton of keyword spam and links at the top for some scammy payday loan site.

  3. Rule #1 of the internet by slashmydots · · Score: 4, Insightful

    - You will get hacked if you use something 1 million+ other people use. It's just a matter of time.

    1. Re:Rule #1 of the internet by WGFCrafty · · Score: 1

      No one has hacked my TI-83 yet (I mean the malicious kind)!

    2. Re:Rule #1 of the internet by Osgeld · · Score: 1

      is it connected to the internet 24/7?

    3. Re:Rule #1 of the internet by Scoldog · · Score: 1

      Who'd want to hack a malicious calculator? That is, unless you are changing it from "Evil" to "Good".

      Most modern calculators have a switch on the back for that these days.

      --
      This space for rent
    4. Re:Rule #1 of the internet by 93+Escort+Wagon · · Score: 1

      Is there a hack that improves the abysmal screen resolution?

      --
      #DeleteChrome
    5. Re:Rule #1 of the internet by Anonymous Coward · · Score: 1

      3.4285714285714285714285714285714

  4. Remote Shell by Anonymous Coward · · Score: 3, Funny

    WordPress is a remote shell that happens to also carry a blogging feature...

  5. tempfix by Kise · · Score: 5, Informative

    you could say create ".htaccess" file in the cache directory and put "deny from all" inside it without the quotes in the mean time until they issue fix for it

    1. Re:tempfix by Anonymous Coward · · Score: 0

      Isn't that, like, in the installation instructions?

      I know the forum software I'm running (not Wordpress) has a cache directory, and it explicity states that you need to make sure that directory isn't accessable from the web, with instructions on how to secure it for various webservers.

      Of course, who reads the README file these days.

    2. Re:tempfix by Pf0tzenpfritz · · Score: 2

      You don't even need to do that. Let wp-supercache set up the rules for mod_rewrite as they are intended (or get your hoster to let you do so by p.e. installing mod_rewrite) and anyone trying to browse your plugin, includes or cache directory will get a nice 403 as a response. If that doesn't work your host or site is not really set up to run dynamic content. There's a little bit more to useful hosting than just installing PHP, Apache and MySQL...

      --
      Oh, the beautiful gloss of greality!
  6. No fucking shit by Legion303 · · Score: 1, Insightful

    "Popular Wordpress Plugin Leaves Sensitive Data In the Open"

    This happens at least twice a week. Don't use Wordpress. Or if you have to use Wordpress, lock it the fuck down and don't install plugins.

    1. Re:No fucking shit by X0563511 · · Score: 2

      Actually it has everything to do with the plugin not having proper defaults in it's installation.

      There's no reason the plugin can't drop it's own .htaccess files and such.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    2. Re:No fucking shit by Anonymous Coward · · Score: 0

      Agreed.

      Options -Indexes

      Would solve the immediate issue.

    3. Re:No fucking shit by Anonymous Coward · · Score: 0

      Wrong if you read the article, disabling indexes doesn't completely fix the issue since the cache files in that dir have predictable names. "deny from all" does the trick

      For people that have an nginx server, its slightly different than modifying the htaccess file, but still quite trivial.

  7. WordPress plugin? by Anonymous Coward · · Score: 3, Funny

    A wordpress plugin with security issues? Well, I never...

  8. Password hashes? by sound+vision · · Score: 2

    "The content of those directories could be downloaded, including directories containing sensitive data like password hashes"...

    All the WordPress installations I've dealt with (quite a few, it's part of my job) had users' password hashes stored in a MySQL database. I wonder why the W3 plugin is writing them to the file system in the first place?

    1. Re:Password hashes? by solarissmoke · · Score: 2

      It caches DB queries to disk to (ostensibly) enhance performance.

  9. Some more examples by solarissmoke · · Score: 1

    I'm sure it's no surprise to anyone here, but there are plenty of other WordPress plugins that do the same thing. Some backup plugins seem to be particularly good at this, giving you unrestricted access to entire DB backups which you can hack in your own time.

  10. We're STILL doing this? by Qzukk · · Score: 2

    It's (the end of) 2012, why the hell are people STILL putting their data stores in web-accessible directories below DocumentRoot?

    I specifically made a conscious decision to set up my very first PHP application to store uploaded files and configuration files in an inaccessible folder way back in 2002 specifically to avoid bullshit like that, which seems to me it must have had been going on for long enough that I knew better back then as a noob fresh out of college.

    --
    If I have been able to see further than others, it is because I bought a pair of binoculars.
    1. Re:We're STILL doing this? by mysidia · · Score: 2

      It's (the end of) 2012, why the hell are people STILL putting their data stores in web-accessible directories below DocumentRoot?

      For the same reason that people are still picking simple passwords. Because it's easy, and doing the right thing is less convenient.

    2. Re:We're STILL doing this? by bill_mcgonigle · · Score: 1

      just run 'chmod -R 777 ~' on your host - somehow this makes everything better!

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    3. Re:We're STILL doing this? by Pope+Raymond+Lama · · Score: 1

      > It's (the end of) 2012, why the hell are people STILL putting their data stores in web-accessible directories below DocumentRoot?
      Because PHP.

      --
      -><- no .sig is good sig.
  11. Link in TFA is hacked. :D by caferace · · Score: 1

    With a whole bunch of payday loan text spam at the top. Wonder what plugin caused that?

    1. Re:Link in TFA is hacked. :D by Anonymous Coward · · Score: 0

      Hah! Go figure

  12. You said it! by psychonaut · · Score: 5, Insightful

    This is precisely why I don't use PGP, TrueCrypt, ssh, or any of those other "cool" encryption tools used by millions of sheeple. All my data privacy and security needs are taken care of by my own custom-written, unbreakable encryption algorithm.

    1. Re:You said it! by Pope+Raymond+Lama · · Score: 2

      In 2012 Slashdot - your funny comments are moderated insightful!

      --
      -><- no .sig is good sig.
    2. Re:You said it! by Anonymous Coward · · Score: 0

      My friend. Are you aware that all custom alghorithms are the easiest ones to break ?

    3. Re:You said it! by Anonymous Coward · · Score: 0

      Double ROT-13?

    4. Re:You said it! by Anonymous Coward · · Score: 0

      Whoosh!!

    5. Re:You said it! by psychonaut · · Score: 1

      Quadruple ROT-13.

    6. Re:You said it! by Anonymous Coward · · Score: 0

      Sarcastic isn't the same as funny. Sarcastic comments can be insighful too.

    7. Re:You said it! by Pope+Raymond+Lama · · Score: 1

      But in this case one can't know if the moderators took the O.P. seriously or not - I'd bet that some of them did.

      --
      -><- no .sig is good sig.
  13. wp-content by utkonos · · Score: 0

    So that's why my last email from paypalcom.tk forwarded me to a URL that looked like this:
    http://joesdumbblog.net/wp-admin/plugins/css/https.paypal.com.php

  14. APC or Memcached by Anonymous Coward · · Score: 0

    This really only applies if the user has it doing db caches in Disk mode.
    If the server was worth anything they would have APC or memcached as an option which doesn't have the exploit and works better anyway.

  15. Well, that's embarrassing... by zx2c4 · · Score: 5, Informative

    Hi folks, I'm Jason, the guy who found this bug.

    I feel kind of embarrassed this is on the front page. I like to think that I spend time doing cooler things than reading PHP, let alone the source of random Wordpress plugins. My brother lives at the south pole and has a pretty damn cool blog about it (yay, more linkspam!), but the NASA satellite only flies overhead a few times a day, and bandwidth is pretty limited, so he asked me to help with some maintenance, and in the process I noticed this. But now the Intertubes have me pinned as a Wordpresser, alas. I guess that's just how it goes.

    Anyway, my feeling on this is basically, to put it in /. terms -- "Random Wordpress plugin has gaping security hole... news at 11!" If you want a reasonably secure Wordpress rig, it's probably best to stick with plugins and themes put out by Automattic.

    It wasn't mentioned in the linked article, so it's worth nothing here -- I think the best remediation, until W3 Edge releases a fix (he's on Christmas vacation now or something I think), is to either disable the plugin entirely, or, if that's not a possibility, just disable the object cache and database cache, and then empty all caches. Doing that should at least clear up this hole.

    -- Jason

    --
    ZX2C4
    1. Re:Well, that's embarrassing... by Anonymous Coward · · Score: 0

      Couldn't you just use memcached instead of the disk based caching mechanism?

    2. Re:Well, that's embarrassing... by Kergan · · Score: 1

      I haven't used WP in a long time, so I don't know precisely what Total Cache does nowadays, but it seems to me that the security hole you disclosed would only ever apply if object and/or query caching is turned on with the disk used as the persistent store.

      If so, I'd like to stress that this is a horrific setup which doesn't scale at all. The initial WP object caching implementation functioned precisely the same way in the WP core. It got disabled by default almost immediately because the high amount of disk I/O that it generated led a few hosts to shut down busy WP sites. It then got replaced by an object cache that uses a non-persistent in-memory store; and the latter can be upgraded to a persistent memcached-based store on busier sites, and this scales fine.

      Imho, if more than a handful of sites are affected (which I doubt), you should suggest the plugin's author that he should prevent users from using such an inanely high amount of disk I/O in the first place, rather than suggesting him to bandaid that broken setup by adding htaccess files in relevant directories.

    3. Re:Well, that's embarrassing... by Anonymous Coward · · Score: 0

      Jason,

      Just to note. This only affects users who have their dbcache/objectcache set to "Disk". I use APC to store this cache, and therefore you cannot get this information (as far as I know).

      This might want to be also published so users know there is an alternative. Disk cache is the default behavior, so it will affect anyone using this plugin with default settings.

      Ciao

    4. Re:Well, that's embarrassing... by Anonymous Coward · · Score: 0

      This. I'm running a fairly large (~75k pageviews/day) WP install on IIS no less using W3TC with a memcached backend. Considering it's WP on IIS (which is an INCREDIBLE dog, performance wise), it's pretty quick.

  16. Lol php by thetoadwarrior · · Score: 0

    That's what happens when you rely on the php community.

  17. Re:tempfix (not apache 2.4+) by corychristison · · Score: 1

    If you use latest stable apache (and you should if you use SSL/TLS) those commands will raise an error.

    You must use "Require all denied" if you don't have mod_access_compat installed & enabled.