7 ms·
Perhaps you see why some of us are skeptical when WebGL's proponents downplay concerns about it enabling security bugs. The hardware provides a full-featured C
by marshray 15y ago
Perhaps you see why some of us are skeptical when WebGL's proponents downplay concerns about it enabling security bugs.
The hardware provides a full-featured CPU with DMA access to the host's memory. Everything better go just right, or it's going to end up remotely exploitable.
- AshleysBrain 15y agoI think it's unfair to call out WebGL specifically when the same is theoretically possible in Flash 11's Stage3D and Silverlight 5's Direct3D.
- marshray 15y agoFair enough, but that's not really a very good argument for its inherent security either. There is a long history of problems with Flash. Silverlight has had vulnerabilities as well. But those are 3rd party binary plugins. It's a lot easier to disable, uninstall, and move beyond 3rd party plugins than it is widely-adopted standards implemented by the browser vendors themselves. It's because it is so appealing and has the potential to become quite popular that we're talking about it now.
- luriel 15y agoJust because other technologies are even worse doesn't make WebGL's security any more acceptable. John Carmack: "I agree with Microsoft’s assessment that WebGL is a severe security risk. The gfx driver culture is not the culture of security."
- Klinky 15y agoThe hardware provides a full-featured CPU with DMA access to the host's memory. What part of WebGL gives a programmer unrestricted access to the host's memory? Everything better go just right, or it's going to end up remotely exploitable. The same could be said for practically any program or web app. Your web browser could have a buffer overflow in it's HTML parsing engine, yet I don't hear you speaking out against HTML... - http://secunia.com/advisories/12959/ http://secunia.com/advisories/12959/
- marshray 15y agoWhat part of WebGL gives a programmer unrestricted access to the host's memory? Ever had a video driver bug crash an application or bluescreen Windows? Your web browser could have a buffer overflow in it's HTML parsing engine, yet I don't hear you speaking out against HTML It's a fair point. Security is about trade-offs. I am indeed concerned about HTML and do most browsing in a VM. But to me WebGL is farther out on the risk/benefit spectrum than HTML. I would not accept it for ads or ordinary page content. I would consider enabling it selectively for an app that I carefully decided to trust. * Admittedly I have not tried, but I suspect it's going to be very difficult to get it to work well from within a VM. * HTML parsers and renderers have indeed had plenty of vulnerabilities. They have taken years to get as secure as they are today and we may not have seen the last of the exploitable bugs in them. * HTML parsers have been implemented from the beginning to accept untrusted data from the internet. 3D graphics drivers, on the other hand, are designed primarily for performance in a scenario where they are run by a single-user game on the local machine, often with Admin privs already. * We saw how many years it took Microsoft (the company that could reportedly turn on a dime) to 'get' security to the point that they could ship a secure browser. I don't see much evidence that graphics vendors are even thinking about it yet. * Apple knows that WebGL bugs will result in jailbroken iPhones. Guess how many years their OpenGL support level is behind the PC...on the very same GPU hardware? Last I checked, someone reported getting OpenGL 3.2 working on a Mac. I've had usable OpenGL 3.3 on a freaking Linux laptop for a couple of years now. More powerful GPUs are up at 4.2. * A buffer overflow in HTML does not automatically amount to a kernel level compromise, (some recent font handling bugs in Windows notwithstanding :-). In fact, the latest generation of sandboxed browsers are building defense in depth mitigations. Any buffer mismanagement between the GPU, driver, GL, and WebGL seems very likely to result in complete pwnage. The GPU can access host memory directly with no access permissions. Don't get me wrong - I love the idea of WebGL and want it to succeed. I just would hate to see it end up like Flash, struggling for years to retrofit security onto something that wasn't originally spec'd for it and a bunch of its users getting pwned in the process.
- Klinky 15y agoEver had a video driver bug crash an application or bluescreen Windows? Yes, but I've also had audio, webcam, scanner & IDE drivers BSOD my computers over the years as well. Drivers usually get better with time, but crappy drivers aren't unique to video cards. Admittedly I have not tried, but I suspect it's going to be very difficult to get it to work well from within a VM. VM software is getting better at passing 3D through to the native hardware, so it may be easier than you think. HTML parsers and renderers have indeed had plenty of vulnerabilities. They have taken years to get as secure as they are today and we may not have seen the last of the exploitable bugs in them. This is the story of software in general. As long as there will be software, there will be bugs, some of them severe. Doesn't mean you just accept it & not try to prevent them, but you also don't stifle innovation because of the fear of causing them. 3D graphics drivers, on the other hand, are designed primarily for performance in a scenario where they are run by a single-user game on the local machine, often with Admin privs already. Not really, they've supported multiple 3D accessible contexts for years & years now. Also if you're running Vista or Windows 7 you are more than likely already relying on the 3D hardware to render your 2D desktop. Web browsers are already using features of 3D hardware to further accelerate non-WebGL content. Apple knows that WebGL bugs will result in jailbroken iPhones. They also know that they messed up on the antenna design of the iPhone 4. Apple is not immune to flaws. Guess how many years their OpenGL support level is behind the PC... This doesn't really matter because WebGL is essentially a copy of OpenGL ES 2.0, which is closely based on OpenGL 2.0. The GPU can access host memory directly with no access permissions. So can your CPU, what's stopping rogue apps from doing so? Software. WebGL mainly involves writing GLSL scripts that act on buffers & arrays of data. You are limited to what data types you can upload into the video card. Perhaps there are more vectors for vulnerability, but I'd rather see WebGL take off as a transparent standard, than rely on Adobe. Plus it's performance could be much greater than sluggish Flash. I admit I'd like to see more granularity as far as control. Last thing I want is WebGL ads eating up my GPU/CPU/Battery rendering stupid ragdolls physics simulations.