https://bugs.freedesktop.org/show_bug.cgi?id=594 What is going on here is that an X client is trying to allocate a pixmap of size 9GB. Because of an integer overflow this is not caught and instead a pixmap of size 1GB is allocated. When the client then tries to access the pixmap we get a server crash. This seems exploitable to me: a client could allocate a pixmap of size 4GB + 4byte, causing the server to allocate just 4 bytes. Then the client could use XDrawPoint() and XGetImage() to read and write any location in the X server address space. It could first use XGetImage to search for the stack, then use XDrawPoint to rewrite it to return into another pixmap the client allocated, thus getting the X server to execute arbitrary code. This issue was discovered by Luke Hutchison, with the security implications and patch found by Soeren Sandmann.
Lifting embargo
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-396.html