Linked by Thom Holwerda on Tue 22nd May 2012 23:26 UTC
Internet & Networking "Just over two months ago, Chrome sponsored the Pwnium browser hacking competition. We had two fantastic submissions, and successfully blocked both exploits within 24 hours of their unveiling. Today, we'd like to offer an inside look into the exploit submitted by Pinkie Pie." A work of pure art, this. Also, this is not the same person as the other PinkiePie. Also also, you didn't think I'd let a story with a headline like this go by unnoticed, did you?
Thread beginning with comment 519098
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Comment by Radio
by moondevil on Wed 23rd May 2012 07:47 UTC in reply to "Comment by Radio"
moondevil
Member since:
2005-07-08

Actually C and C++ are the weakest links, not the GPU, as the exploits take advantage of the pointer tricks so dear to C and C++ developers.

If ComputeMaxResults() was done in a more sane language, this exploit wouldn't have been possible, without doing some Assembly code rewriting.

Reply Parent Score: 1

RE[2]: Comment by Radio
by kwan_e on Wed 23rd May 2012 08:14 in reply to "RE: Comment by Radio"
kwan_e Member since:
2007-02-18

If ComputeMaxResults() was done in a more sane language, this exploit wouldn't have been possible, without doing some Assembly code rewriting.


Did you actually read the functions? It is a calculation logic error. There is no language alive to prevent logic errors. The logic error results in an invalid buffer access for a GPU related task. No "sane" language has yet been extended to use GPUs that do no rely on creating buffers directly at some point in its execution.

You do understand that were a managed language required to access the GPU, it would also need to do manual memory management undercovers, don't you?

Reply Parent Score: 6

RE[3]: Comment by Radio
by moondevil on Wed 23rd May 2012 09:32 in reply to "RE[2]: Comment by Radio"
moondevil Member since:
2005-07-08

Did you actually read the functions? It is a calculation logic error. There is no language alive to prevent logic errors. The logic error results in an invalid buffer access for a GPU related task. No "sane" language has yet been extended to use GPUs that do no rely on creating buffers directly at some point in its execution.


Yes I've read the functions, ComputeMaxResults() and ComputeSize(),
are the standard way to manipulate blocks of memory/arrays in C and related to the way arrays decay into pointers.


You do understand that were a managed language required to access the GPU, it would also need to do manual memory management undercovers, don't you?


Safe programming languages != GC != Managed.

Ada, Modula-2, Delphi, Turbo Pascal are safe programming languages with manual memory management, compiling nicely to native code as well, just as an example.

Reply Parent Score: 2

RE[3]: Comment by Radio
by panzi on Wed 23rd May 2012 20:39 in reply to "RE[2]: Comment by Radio"
panzi Member since:
2006-01-22

You say there is no known language where this calculation would return the right result? Obviously you don't know Python or Ruby. These language have variable length integers which means that you never have a integer overflow/underflow.

Yes, the result is then a negative number. But given the definition of the function and the parameters the result is "correct". And in Ruby/Python you don't have any buffers through which you can access arbitrary memory anyway.

Reply Parent Score: 2