Any product that is really successful is going to be attacked. Over time the attacks will become progressively more sophisticated. Given how popular – and how good – WordPress is, it doesn't surprise me that it has attracted enough attention that someone eventually broke through.
Guess what? I'm running 2.1.1 in my test environment. Good thing I haven't flicked the switch. Anyway, here's the scoop as explained by WordPress:
Long story short: If you downloaded WordPress 2.1.1 within the past 3-4 days, your files may include a security exploit that was added by a cracker, and you should upgrade all of your files to 2.1.2 immediately.
Longer explanation: This morning we received a note to our security mailing address about unusual and highly exploitable code in WordPress. The issue was investigated, and it appeared that the 2.1.1 download had been modified from its original code. We took the website down immediately to investigate what happened.
It was determined that a cracker had gained user-level access to one of the servers that powers wordpress.org, and had used that access to modify the download file. We have locked down that server for further forensics, but at this time it appears that the 2.1.1 download was the only thing touched by the attack. They modified two files in WP to include code that would allow for remote PHP execution.
This is the kind of thing you pray never happens, but it did and now weâ€™re dealing with it as best we can. Although not all downloads of 2.1.1 were affected, weâ€™re declaring the entire version dangerous and have released a new version 2.1.2 that includes minor updates and entirely verified files. We are also taking lots of measures to ensure something like this canâ€™t happen again, not the least of which is minutely external verification of the download package so weâ€™ll know immediately if something goes wrong for any reason.
Am I ever relieved that I'm using Project Pamela's InfoCard plugin in the new environment! I haven't written about it yet, since I've been evaluating the beta. But thanks to Project Pamela, I will just have to download 2.1.2, and change one line in one WordPress file to get InfoCard login working with it. Let's drink a toast to proper factoring! I'll be writing about this amazing plugin soon.
By the way, I have good news for the old-fashioned. I'll be able to turn on username / password for comments again, since version 2.1.2 gets over the registration vulnerabilities in my current version.
The whole episode brings up the interesting question of how to secure a widely distributed software project. The more desirable you are as a target, the better the tools you need. One day I hope to talk to the WordPress folks about incorporating InfoCards into their development process.