11 ms·
Microsoft's Skydrive sends two million NULL characters
- andrewcooke 14y agois it actually sending 2M characters over the wire (ie uncompressed)? you could imagine seeing something like this via a glitch in compression (2 million of anything, run length encoded, doesn't take much space). (i guess it's also possible that this really is 2M nulls at a lower level and compression just happens to save you from an embarrassing waste of bandwidth). it's not clear to me what the URL is to check myself.
- gingerlime 14y agoI was thinking the same thing. Is the content gzip'd on the server? This could be a nice (i.e. evil) way to send a very small response to the browser that would pretty much kill it. a slightly more evil version would be to perhaps do: var x="...2 billion of the same character..."; This should compress very well to gzip, but will likely to exhaust the browser's memory (??)
- rcxdude 14y agoIndeed, there was a 'crash your browser' webpage a few months ago which used this technique I think. Unfortunatly I can't find it currently.
- logn 14y agoOh, I do remember seeing that. Ahh, just fou
- olliesaunders 14y agoThis is very similar to the ping of death that requests a undeliverably big ping response.
- plaguuuuuu 14y agoPing of death was +++ath0 which causes a dialup modem to hang up. I have no idea why most modems did this. But by god it was a lot of fun on IRC when I was 14 or so. I still remember the hex string for +++ath0 you'd need to pass into 'ping -p', haha..
- nickzoic 14y agoThe "proper" Hayes AT drop-back-to-command-mode sequence was +++ followed by a long pause (1 second or so). Any characters sent during that pause time would invalidate the attempt to switch to command mode. So theoretically this shouldn't happen. However, lots of cheaper modems seemed to not check for the pause, so sending +++ATH0 would make them switch to command mode and immediately process a Hangup command ... not pretty :-).
- thristian 14y agoSpecfically, that pause was the part of the Hayes AT command-set that was patented. Therefore lots of manufacturers who didn't want to licence the patent but wanted to have 'Hayes AT compatible' on the box just didn't bother implementing the timeout-cancellation bit.
- nickzoic 14y agoWow, I didn't know that, it explains a lot.
- samwillis 14y agoYou are describing a zip/decompression bomb. Most zip and compression libs protect against them. http://en.wikipedia.org/wiki/Zip_bomb http://en.wikipedia.org/wiki/Zip_bomb
- mey 14y agoSee also http://en.wikipedia.org/wiki/Billion_laughs http://en.wikipedia.org/wiki/Billion_laughs
- gingerlime 14y agoInteresting, but the wikipedia article mentions that antivirus libraries protect against those. Couldn't find much on wikipedia or otherwise talking about browsers or zip libraries that have built-in protection for this...
- deleted 14y ago[deleted]
- VMG 14y agoThe easier version would be to just run a crashing script var i = 1, a = []; while(a[i++] = "a" + a);
- takluyver 14y agoI think most HTTP these days uses transparent compression, but I can't find a source for that just now.
- brudgers 14y agoThe author's choice of title somewhat implies malfeasance on Microsoft's part. In general, the article seems intended to spread FUD regarding Skydrive. I would point out that if Opera is just now debugging their interaction with Skydrive, it is indicative of how few people use it. While I appreciate the motivations behind it and its rich feature set, I gave up on Opera for Firefox after a year. In part this was the fatigue of experiencing broken websites, in part because of low quality plugins comparable to noscript. Opera would be great if it handled nonstandard html gracefully for me instead of telling me about its high horse and the shoddiness of the websites I use.
- mikeash 14y agoWhere's the FUD? The tone of the article is fairly strictly factual. The only deviation from facts is where he says that it's bizarre to encounter this, which is an opinion, but still completely reasonable. IMO it is bizarre.
- Semiapies 14y agoThe meaning of "FUD" slowly morphed to "saying bad things about software I like" a few years back.
- rplnt 14y ago> I gave up on Opera for Firefox after a year And went to use what? IE? Or did you try Opera/FF just recently when Chrome became usable?
- LockeWatts 14y agoChrome's been usable for something like 4 years now.
- rplnt 14y agoNot really. It wasn't really usable after the release (which was 4 years ago). Constantly crashing, featureless (which it still is, but now you have extensions). I tried it several times in the course of the first year after release and it was really (really) bad. But even if it was 3 years, it's still a short time for a browser to be around. But as leddt pointed out, I misunderstood the comment I replied to.
- mikeash 14y agoExactly what I was thinking. My best guess is that their data is triggering a latent bug in their gzip compressor which causes it to output something that decompresses to 2MB of zeroes.
- CJefferson 14y agoJust to save anyone else bothering to check, 2M of nulls gzips to almost exactly 2k. Easy to imagine with compression how you could miss that, although it is still a bit embarrassing.
- pilif 14y agowhile it's certainly not a very good example of good network citizenship to send 2 megs of NULL bytes, I think Opera shouldn't be crashing here. The fact that it does points to a bug in the code that might potentially be exploitable beyond the simple denial of service which it already is. AFAIK Opera still runs all tabs in one shared process, so spamming one tab with 2MB of NULL will cause the whole browser (and with it all other tabs) to crash.
- pygy_ 14y agoYour point is actually acknowledged by the author of the post.
- ygra 14y agoThey said so in the post: “We should fix that”. There are other browsers out there that have the same problem regarding tabs, namely Firefox. A misbehaving tab causes the whole browser to stall and you can't even kill that single tab. So Opera isn't alone in that regard.
- ricardobeat 14y agoI thought Firefox had already isolated tab processes a couple releases ago?
- Skalman 14y agoNope. The major fix that they did was to eliminate memory leaks in extensions when the user closes a tab.
- mh- 14y agono, there is still no meaningful isolation in that regard.
- icebraining 14y agoThey isolated plugins (like Flash), but the project for tab process - called Electrolysis - was put on hold last year. http://lawrencemandel.com/2011/11/15/update-on-multi-process-firefox-electrolysis-development/ http://lawrencemandel.com/2011/11/15/update-on-multi-process...
- evincarofautumn 14y agoA friend of mine who uses SharePoint at work has mentioned its peculiar habit of occasionally inserting “millions of whitespace characters” in source files. Perhaps this is related.
- bibinou 14y agoA post-mortem after this bug is fixed would be interesting, I don't see how 2MB of NULL characters should be different from a random <img>.
- laumars 14y agoA random embedded image wouldn't be passed through the HTML parser (at least not if the web server has it's MIMEs set up correctly - and if they don't, then the site would be considerably less usable). It will be interesting to see the results though - to see if the null characters even reach that far or if this is effectively hitting Opera with a zip-bomb
- anonymfus 14y agodata: URLs?
- laumars 14y agoWell yeah, I nearly added that disclaimer myself but then thought it was pretty obvious the previous poster was referring to referenced URIs rather than data URIs. Though I may have misinterpreted his post.
- bibinou 14y agothis reminded me of `A file that's both an acceptable HTML page and a JPEG (view source on it)` : http://news.ycombinator.com/item?id=4209052 http://news.ycombinator.com/item?id=4209052
- mephi5t0 14y agoSomebody fall asleep on the keyboard right after the if(userAgent == Opera) :)
- dbaupp 14y agoIt shows up in Firefox too.
- meritt 14y agoMaybe they are just trying to locate a faulty router that always sets certain bits to 1 above a certain MTU size.
- imrehg 14y agoWell played.... (or for those who missed and like epic networking related fun http://news.ycombinator.com/item?id=4709438 http://news.ycombinator.com/item?id=4709438 )
- DanBC 14y agoA bit of noodling shows people having this (or something similar) in 2009. (http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomizationlegacy/thread/4d282bdb-9da4-4d57-94de-2879dcf229bf http://social.msdn.microsoft.com/Forums/en-US/sharepointcust...) 195,000 blank lines? Oh you kidder, Microsoft! (https://padavis.wordpress.com/2009/05/07/sharepoint-designer-error-reading-file/ https://padavis.wordpress.com/2009/05/07/sharepoint-designer...)
- chiph 14y agoDoes the mobile version of Skydrive do this too? "I don't understand how I could have hit my wireless cap again?!?"
- jrockway 14y agoThe most interesting part of the article is that the author uses Comic Sans as the font in his text editor.
- hallvors 14y agoComic relief :)
- benmmurphy 14y ago2MB of null could be a bug somewhere with compression or decompression
- benmmurphy 14y agojust to test this theory I used tamper data with firefox to remove the Accept-Encoding header and I received ~ 100kb page back and with the Accept-Encoding header present I received ~ 30 kb page but the 30 kb page also had the 2 million null characters. I assume microsoft has a bug in their gzip library or possibly firefox/opera have a bug in theirs.
- andrewcooke 14y agoare you the original author? what url are you using taht shows the null characters?
- benmmurphy 14y agojust go here: https://skydrive.live.com/ https://skydrive.live.com/ and login. it's the first page after you login.
- andrewcooke 14y agook, thanks. so i had tried that. at least on chrome/linux, for me, it's not showing the nulls. at least, i can't see them in view source and saving to a file gives: > wc /tmp/skydrive.html 310 4068 128404 /tmp/skydrive.html similarly with firefox.
- yuhong 14y agoLooks like it is fixed now for me too.
- ww520 14y agoIs it the Skydrive website sending 2Meg 0's? Or the Skydrive software itself? That's a big difference. It sounds like the website's sending 2Meg of 0's in a webpage. Webpages are compressed usually when sent across wire so the 2Meg of 0's is really nothing.
- hybrid11 14y agoPeople still use Opera?
- ehosca 14y ago2M null characters is just a few bytes when zipped... this smells like a screwed up server config...