Tim Nufire wrote:
> Reposting from php-general@lists.php.net to the internals@lists.php.net
> list because I'm told that's the right place for a discussion like this....
> 
> In tracking down a bug that I am seeing on a site I work on, I came
> across bug #30153 (http://bugs.php.net/bug.php?id=30153). I must say I
> am shocked that this bug was closed as 'bogus'.... Not only is this a
> bug, it is a security issue! How can gzinflate not be responsible for
> validating the content passed to it? Not doing so exposes PHP servers
> that use this function to serious denial of service attacks....
> 
> Let me illustrate this issue using Magpierss
> (http://magpierss.sourceforge.net) which uses gzinflate to support
> gziped RSS feeds. Because Magpierss gets the compressed content from a
> foreign server, it does not control its validity. The only way to see if
> it is valid is to try to decompress it... Since this will crash the
> script when the content is not valid, using gzinflate in this way will
> expose any RSS aggregator that uses Magpierss to denial of service
> attacks. Since no other means are provide to validate the gzip content,
> I am at a loss to suggest a workaround to the Magpierss authors...
> 
> This is just one example. Any server which decompresses content that it
> gets from a foreign source will have this same issue. IMO, crashing a
> script is never the right way to indicate that an error has occurred.
> Without a fix, gzinflate should only be used when the content comes from
> a trusted source.
> 
> If I am missing something here or if there is a workaround to this
> problem, please let me know.

I agree it is a problem, but the fix isn't easy since the zlib library
doesn't provide any help here.  We'd welcome an intelligent patch for this.

-Rasmus

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to