Huh, didn't think this would be posted. This is a little demo effect I threw together last week when I was bored. It's built on top of WebGL (the effect itself is really just in a shader), and the reason it looks like a PNG is that it's a self-extracting PNG as described in my article here: http://daeken.com/superpacking-js-demos
Impressive: Firefox hold fine and rendered it, but after I opened it the second time, all the text in my system (that includes the browser, but also the terminals, Awesome, etc) was FUBAR - even after restarting the X server!
I have no idea what kind of bug leads to only the text being corrupted (so, it doesn't seem a bug in the graphic drivers, since AFAIK they're agnostic to that) but survives restarting the display manager.
I've had similar experiences with graphical corruption in X, and Firefox was almost always involved. Same radeon driver as you. And it seems to be distro-agnostic: I've seen it with Arch, Gentoo and Mint. All I know is that it's a recent thing: if I run an older version of my Gentoo build, it doesn't happen. But otherwise I see the same results.
I have no idea what to point to, because it's really weird. Scrambles /everything/ that goes through video. (And until now, I figured it was a quirk of my bizarre hardware. Guess not.)
In Arch / Chromium / Intel card, and after starting Chromium disabling the webgl graphic cards blacklist, it just shuts my monitor down and I have to reboot.
I think the comments hilight very nicely why some people are not all that thrilled about having OpenGL in their browsers in the form of WebGL. Graphics drivers seem to be extremely difficult to "get right", especially if any degree of performance is wanted.
My considered opinion (from the industry) is that its really shocking how under-invested-in the drivers are.
If a fraction of the effort that went into making the card went into making the drivers and maintaining and fixing them, we'd all be massively better off.
I think we need to start using a [WebGL] tag or something for these... obviously some browsers don't take it well, and it would keep a lid on all the (kinda pointless) "Doesn't work"/"works for me" comments.
In some cases, it's even worse. Low end netbooks running Chrome will load the page and then the entire machine locks up as the WebGL starts rendering and takes over the weak GPU. Easy way of DOSing someone is to send them a WebGL link if they're on a weak computer.
This can't be used for XSS or the like, really. The way it works is that the PNG is first interpreted as HTML by the browser (hence the filename) and then it loads itself into an image tag, causing it to be interpreted as a PNG. Once it's loaded into the image tag, the image is drawn to a canvas so that the code -- embedded in the PNG -- can be extracted and executed.
While fun, the only real security concern here is that it's really good at pissing off IDSes.
Edit: I linked my article describing the technique in another comment here if you want to see how horrible it really is. I'm always both proud of and disgusted by myself for this technique.
There's your problem. Are you using an ATI card, by the way?
Make sure you have restricted drivers installed. If you're using an ATI card you'll have to do the further step of going to about:flags in Chrome and making it ignore the software rendering blacklist.
NoScript is the new subject for "I run Linux, I don't have to worry about..." But after I enabled scripting it worked fine, very neat-looking demo. Also I admit that I enjoy reading about the problems of others here...
[+] [-] daeken|14 years ago|reply
[+] [-] icebraining|14 years ago|reply
Impressive: Firefox hold fine and rendered it, but after I opened it the second time, all the text in my system (that includes the browser, but also the terminals, Awesome, etc) was FUBAR - even after restarting the X server!
I have no idea what kind of bug leads to only the text being corrupted (so, it doesn't seem a bug in the graphic drivers, since AFAIK they're agnostic to that) but survives restarting the display manager.
[+] [-] cydonian_monk|14 years ago|reply
I have no idea what to point to, because it's really weird. Scrambles /everything/ that goes through video. (And until now, I figured it was a quirk of my bizarre hardware. Guess not.)
[+] [-] cookingrobot|14 years ago|reply
[+] [-] gcr|14 years ago|reply
[+] [-] sohn|14 years ago|reply
[+] [-] zokier|14 years ago|reply
[+] [-] willvarfar|14 years ago|reply
If a fraction of the effort that went into making the card went into making the drivers and maintaining and fixing them, we'd all be massively better off.
[+] [-] mike-cardwell|14 years ago|reply
[+] [-] Cushman|14 years ago|reply
Works for me. Super cool.
[+] [-] sigmaxipi|14 years ago|reply
[+] [-] zbowling|14 years ago|reply
The blackhat-spidy-sense in me is getting a tingle. XSS injection if a PNG could used to execute javascript possibly.
[+] [-] daeken|14 years ago|reply
While fun, the only real security concern here is that it's really good at pissing off IDSes.
Edit: I linked my article describing the technique in another comment here if you want to see how horrible it really is. I'm always both proud of and disgusted by myself for this technique.
[+] [-] PStamatiou|14 years ago|reply
[+] [-] njharman|14 years ago|reply
[+] [-] packetslave|14 years ago|reply
[+] [-] burke|14 years ago|reply
[+] [-] cjfont|14 years ago|reply
[+] [-] dguaraglia|14 years ago|reply
[+] [-] jlarocco|14 years ago|reply
[+] [-] RKearney|14 years ago|reply
Granted it didn't work... No hangs or crashes though.
[+] [-] mike-cardwell|14 years ago|reply
[+] [-] jes5199|14 years ago|reply
... but I'm not sure what it's doing
[+] [-] wordsaretoys|14 years ago|reply
[+] [-] machrider|14 years ago|reply
[+] [-] TazeTSchnitzel|14 years ago|reply
There's your problem. Are you using an ATI card, by the way?
Make sure you have restricted drivers installed. If you're using an ATI card you'll have to do the further step of going to about:flags in Chrome and making it ignore the software rendering blacklist.
[+] [-] DiabloD3|14 years ago|reply
[+] [-] Jach|14 years ago|reply
[+] [-] unicornporn|14 years ago|reply
[+] [-] pooriaazimi|14 years ago|reply
I'm sure Safari supported WebGL...
[+] [-] eridius|14 years ago|reply
[+] [-] benguild|14 years ago|reply
[+] [-] ent|14 years ago|reply
[+] [-] ComputerGuru|14 years ago|reply
[+] [-] swhitt|14 years ago|reply
[+] [-] icebraining|14 years ago|reply
[+] [-] martindale|14 years ago|reply
18.0.1025.151 (Developer Build 130497 Linux) Ubuntu 12.04
[+] [-] hristov|14 years ago|reply
18.0.1025.151 (Developer Build 130497 Linux) Ubuntu 12.04
[+] [-] agravier|14 years ago|reply
[+] [-] pan69|14 years ago|reply
Note: Chrome, not Chromium.
[+] [-] sohn|14 years ago|reply
[+] [-] simplyinfinity|14 years ago|reply
[+] [-] saturn7|14 years ago|reply
[+] [-] gphilip|14 years ago|reply