Blog on chrispederick.com Work Posts
On Wednesday, August 2nd at 6:30 am PDT I discovered that Web Developer for Chrome had been compromised and a new version 0.4.9 had been uploaded to the Chrome store that contained malicious code. I immediately disabled the extension in the Chrome store and regained control of the developer account associated with the extension. At 8:40 am PDT I uploaded a new version 0.5 that removed the malicious code.
Please make sure that you update to version 0.5 of the extension as soon as possible. I am still looking into exactly what the malicious code was doing, but it is strongly advised that if you had Web Developer for Chrome installed that you change your password to any site that you logged into on Wednesday, August 2nd as a precaution, particularly Cloudflare which looks as though it may have been explicitly targeted. It has also been suggested that Cloudflare users revoke their API key if they visited the Cloudflare dashboard yesterday as this may have been compromised as well.
Note: The Firefox and Opera versions of the extension were entirely unaffected.
I sincerely apologize for this incident and the pain and frustration it has caused.
Timeline Of What Happened
Tuesday, August 1st
9:25 am PDT: I receive an email saying that Web Developer does not comply with Chrome store policies and needs to be updated. I could make excuses about how I am extremely busy at work or I seem to constantly be logged out of my Google account so having to log in is not unusual, but the reality is that I am a bloody idiot and blindly logged into my developer account after clicking on a link in the email. To add to my stupidity, the developer account did not have two-factor authentication turned on. At the time, I do not realize what I have just done and simply save the email to look into in more detail when I have more time.
Wednesday, August 2nd
6:30 am PDT: I wake up to a number of tweets and emails from users reporting unusual logging and adware coming from Web Developer. I realize that this is tied to the email from the day before and immediately change my developer account password. I log in to the developer dashboard and see that a version 0.4.9 has been uploaded by someone other than myself and immediately unpublish the extension from the Chrome store.
8:40 am PDT: I create a new version 0.5 from a code branch that I had been actively working on to fix bugs in the extension and upload that to the Chrome store.
9:15 am PDT: The new version 0.5 goes live in the Chrome store.
With the compromised version of the extension now replaced in the store, I have been working on replying to everyone who tweeted or emailed me advising them to upgrade to version 0.5 ASAP. I have also informed Google of what happened, although there is not an obvious right way to report this and thus far I have not heard from them.
I changed the password for the developer account immediately upon discovering the issue, but I have also now enabled two-factor authentication on that account so that an attack of this nature is far harder in the future.
I am also continuing to look into the impact of the malicious code as are others with far more security knowledge than myself, which is incredibly appreciated.
Someone has created a Gist that shows the malicious code that was added to the extension and is decoding and discussing exactly what the code is trying to do.
I also received an email from a security officer of an ISP in the Netherlands who says that the malicious code looks to use a date-based domain to request URLs and they have graciously registered the domains for the next week of dates in an attempt to block the requests from happening.
My extension does not seem to be the only one that was targeted in this way and the developers of the Copyfish extension have written their own blog post detailing what happened to them which appears to be very similar to my experience.
I will continue to update this post with more information as I have it and once again I sincerely apologize for the disruption and distress that this has caused.
Update: Proofpoint has posted an incredibly detailed breakdown of the compromise.
Web Developer 0.4 for Chrome is now available. The extension can be downloaded on the Google Chrome extension gallery.
The release notes contain the full list of changes in this version, but some highlights are:
- A new disable menu
- Syntax highlighting and line numbers when viewing code
- A new feature to view the responsive layouts of a page
- Unlimited resize dimensions and tools configurable in the options
Under the hood this is also essentially a complete rewrite of the extension that merges the code base with the Firefox version. This should allow improved features, fewer bugs and more frequent releases going forward.
The Web Developer extension has always needed access to your browsing history as that is how it is able to add custom scripts to any web site for its features to work. However, some of the new features now require extra permissions such as access to cookies. As explained in the FAQ none of this data is accessed beyond the needs of the features of the extension and no personal data is sent from the extension to a third-party apart from for the third-party features such as validators.
Web Developer for Firefox 1.2 Beta 1—a preview release of the next version of the Web Developer extension for Firefox—is now publicly available. This release is for testing purposes only—for a fully supported version of the extension or localized builds please see the latest official release.
A few notable changes in this release are:
- A new theme on OS X
- A number of new features including ‘Reload Linked Style Sheets’ and ‘View Responsive Layouts’
- Keyboard shortcuts can now be assigned to any feature
- Syntax highlighting and line numbers when viewing and editing code
And of course there are many fixed issues. For the full list of changes in this version please read the release notes.
As a beta release this build is not guaranteed to be stable. The idea behind this beta release is to give people the opportunity to provide feedback about this next version as well as report any bugs. Please report any feedback or issues in the beta forum or via the contact form.
Note that the forums on chrispederick.com have been upgraded as my self-hosted version of FluxBB was having more and more problems recently. Therefore I have upgraded to a hosted Vanilla Forums setup.
Unfortunately as part of this upgrade the existing forums data including user accounts and posts could not be easily migrated so you will need to re-register if you had registered previously.
Let me know if you see any problems with the new forums by posting in the forums or via the contact form.
When Safari 5 was released a year ago Apple followed the lead of Firefox and Chrome and added support for extensions. A number of people contacted me at the time asking if I would port Web Developer to Safari and I said I would look into the possibility.
When I looked at the Safari extension API it was clearly based on the Chrome extension API and I was initially hopeful that creating a Safari version of Web Developer would not only be possible, but relatively straightforward.
Why Web Developer Does Not Work With Safari (Yet)
My first thought was to add a toolbar button that could open an HTML version of the Web Developer toolbar just like I do in Chrome:
As I started to work on creating Web Developer as a Safari toolbar though, a major shortcoming became clear. Safari toolbars can only contain HTML elements and do not allow those elements to expand outside of the toolbar—expanding menus in the toolbar are not possible.
The only way to work around this limitation is to use HTML select elements—an option that extensions like Safari Developer are using:
I personally see this as a clunky solution with major limitations and poor usability. Therefore I decided to wait and hope that the Safari extension API matured to allow a better implementation of Web Developer.
Why Web Developer May Work With Safari In Lion
Cut to this week and Apple released a bunch of new information about the next release of OS X called Lion. Tucked at the end of their section detailing the new features in Safari in Lion is the following paragraph:
If I am understanding this correctly it sounds like the Safari extension API will be updated to support HTML popups being opened by custom toolbar buttons just like in Chrome. If this is true then I will once again look into porting Web Developer to Safari.
OS X Lion does not have a firm release date yet, but it is due to be released some time in July and I am currently working on the next release of Web Developer for Firefox. Any development on a Safari version would have to wait until the Firefox update is complete, but I cannot give any estimate as to when this might happen. Just know that I will be investigating the possibility of porting Web Developer to Safari as soon as I have the time once Lion is released.
At the end of January I released new versions of both the Web Developer and User Agent Switcher extensions. These patch releases primarily added support for the then upcoming release of Firefox 4 which eventually came out two months later. Since then I have been extremely busy at work and have not had much time to work on the extensions, but I wanted to give an update about some issues that were found with Firefox 4.
The main issue with the Web Developer extension in Firefox 4 is that the toolbar menus are not checked when they are activated on Mac OS X. This is actually an issue with Firefox 4 and I have filed a bug with Mozilla that they have acknowledged, but are still working on. Hopefully this will be fixed soon as it’s a major issue that affects all toolbar menus in the browser.
There are also a few features in the Web Developer extension itself that have issues in Firefox 4:
- The toolbar display options always reset.
- The ‘Mark All Links Unvisited/Visited’ features no longer work.
- Wildcard cookies can no longer be added.
I’ll be looking to fix all of these issues in the next release of the Web Developer extension.
User Agent Switcher
The User Agent Switcher extension also has a couple of issues in Firefox 4. First of all, the extension is not easy to access in Firefox 4 on Windows. There are currently a couple of ways around this as explained in the screencast below and I’ll be looking to fix this in the next release.
The second issue is that Mozilla removed the ability to override some of the user agent properties in Firefox 4 that you could override in previous versions. Specifically the app code name and vendor and vendor sub properties can no longer be overridden. There is nothing I can do to workaround this, but I will be updating the User Agent Switcher extension to indicate that those properties have no effect in Firefox 4.
As always I cannot give estimates for when the extensions will be updated as it depends on how busy I am at work, but I am actively working on them whenever I have free time and will release them as soon as I can.
Patch releases of both the Web Developer and User Agent Switcher extensions have been released for Firefox. These releases primarily add support for Firefox 4 to both extensions as well as fixing a few issues in Web Developer including ‘View Style Information’ being vulnerable to a cross site scripting attack. The full list of changes to the Web Developer extension can be found in the release notes.
Web Developer 1.2
I had originally hoped to release version 1.2 of the Web Developer extension in time for Firefox 4. Version 1.2 will merge the Firefox and Chrome codebases of the extension, as well as adding new features and fixing a number of issues. However, this is still in development which is why I have released this minor update to make sure that Web Developer is at least compatible with Firefox 4.
I am pleased to announce the release of Web Developer 0.1 for Google Chrome. The extension is available for download on the Google Chrome extension gallery.
As the version number suggests this is an early stage build of the extension for Chrome that I wanted to release quickly to elicit feedback.
As such, there are a few missing features from the Web Developer extension for Firefox, particularly those that require custom interface elements like ‘Edit CSS’ as these need to be rewritten to integrate fully into the browser. Some of the more complicated features as well as configuration options like keyboard shortcuts are also not included in this initial release, but these will be coming soon in future updates.
I haven’t had a chance to upload the source for the extension yet, but I should have something up (most likely on GitHub) soon and will post a link to the repository when I do. Please post any issues or feedback in the Chrome section of the forums.
Web Developer for Google Chrome.
This version of the Web Developer extension fixes an issue where the ‘View Generated Source’ feature did not work, as well as combining the Firefox and Seamonkey versions of the extension into one build. The User Agent Switcher extension release should hopefully fix the problem with importing user agents in nested folders once and for all.
Apologies for the frequent updates, but hopefully these will be the final patch releases before the next major releases of the extensions.
Patch releases for both the Web Developer and User Agent Switcher extensions have been released. These releases add support for Firefox 3.5 to the Web Developer extension and fix some minor issues with the recent update to the User Agent Switcher extension—the full list of fixes can be found in the release notes.
I have finally had the time to release a new version of the User Agent Switcher extension. The main changes in this release are the support for folders and separators in the user agent list as well as indicating a non-default user agent has been selected by more than just the icon color. The user agent list has also been updated to include both the Googlebot and the iPhone user agents. A full set of release notes is available.
In October I will be at the Webmaster Jam Session in Atlanta, speaking about using the Web Developer extension to develop and debug web sites in a session called Firefox Web Development. The dates for the event are October 3rd and 4th, and even if my session sounds dull there are a ton of other speakers so it should be well worth checking out.
Update: My presentation slides are now available.
Bizarrely (and rather embarrassingly) this is an almost identical post to my last post over 10 months ago. New versions of the Web Developer and User Agent Switcher extensions have been released. These releases are mainly to add support for the upcoming Firefox 3, but also contain a few other bug fixes.
And just like my last post I have redesigned my site—I think everything is working, but let me know if you see anything broken. Maybe I will actually write some posts describing some of the new features like I promised last time.
New versions of the Web Developer and User Agent Switcher extensions have been released. They are both patch releases fixing minor issues, as well as updating the extension download and update URLs to hopefully help with my bandwidth costs.
If you are reading this on chrispederick.com you will also see that I have redesigned my site. I am still working out some of the kinks so let me know if you see anything funky and look for some blog posts in the future describing some of the new features.