A recent post by security analyst David Kierznowske reports that 49 out of 50 WordPress blogs that he checked out were running an exploitable version of the WordPress blogging engine. According to the post, David looked at blogs running on versions as far back as WordPress v1.2 (with v2.2 being the most recent release, as of this writing).
So does this mean that WordPress is buggy software that is to be avoided? No, not at all. It just means that those users need to do a better job of dealing with the bugs.
The sky is blue and software has bugs
All software has bugs, it's just the nature of the game. And until some magic-voodoo methodology comes along, finally allowing us to write bug-free software, we're just going to have to deal with bugs the best we can.
And what is the best way to handle a bug? Step on it of course! When talking about software bugs that means keeping your application patched and up to date.
Jeff Atwood wants his software to diagnose and fix itself. I think that's a great idea for software systems like your OS or any other software running directly on your desktop/server - like your web browsers, media players, office applications, IM clients, etc... But what about your web-based applications?
The web is different
Do we really want our blog engines, wikis, forums, portals, etc... updating themselves whenever they see fit? I doubt it!
The image editing application running on your laptop suddenly restarting after updating itself is one thing. But having your entire web portal go offline at some random time because it just updated itself is another story entirely.
Keep users updated
Short of the fully automated patching and upgrading utopia that only exists in Jeff's dreams, I believe one of the best ways to encourage users to keep their web applications patched and up to date is to keep them informed. They need to know when a new version is available, or a new high-priority bug has been found, new skins or plugins are available, etc...
In the case of WordPress blogs, you can't blame the guys (and gals) who are building the application for having users that don't keep their blogs patched. There is even a disclaimer on the WordPress Download Archive site stating that
None of these [WordPress Versions] are safe to use, except the latest in the 2.0 or 2.1 series, which are both actively maintained.
Now, I know they have a mailing list that announces when new versions are available along with some other news, and that's a good start. But we as software builders need to do more.
Bring back the ID-10-T light
Perhaps a check engine light wouldn't be such a bad idea for web applications. Of course, I'm not talking about showing that light to the front-end user. I would build it into the applications dashboard - just like in a car - where the application administrator/owner/manager can see it.
In implementation this warning light may just be a built-in RSS reader that shows a short list of the most recent project news items... along with some UI goodness that will warn the user of important news, of course!
You know, I think I might just add that to my to-do list for the next version of Subtext.
Tell me about it
What am I missing? There have got to be some better ways to inform the users of web-based applications that they need to take action to protect themselves. Or is it more than just information that they are missing?
Is it just too hard to manage this stuff? Maybe. That certainly would help explain why so many of the WordPress blogs that David looked at were still running such old and outdated versions of the code.
Do we, the web application builders, need to figure out more seamless way to upgrade our applications? Probably yes... but that is a topic for a whole other blog post. :)