Vigil@nce: PHP, integer overflow of dechunk
May 2010 by Vigil@nce
This bulletin was written by Vigil@nce : http://vigilance.fr/
SYNTHESIS OF THE VULNERABILITY
An attacker can generate an integer overflow in the PHP filter reassembling HTTP chunk encoded data.
Creation date: 04/05/2010
DESCRIPTION OF THE VULNERABILITY
An HTTP response can be split in several "chunks", by using the "Transfer-Encoding: chunked" header.
The PHP file_get_contents() function can use filters to manage data. The "read=dechunk" filter automatically reassembles HTTP fragments.
However, this filter does not correctly manage negative chunk sizes, which corrupts the memory.
An attacker with a malicious HTTP server can therefore send a malicious reply to PHP applications using this filter. This error leads to a denial of service, and eventually to code execution.
ACCESS TO THE COMPLETE VIGIL@NCE BULLETIN