Squid versions 2.0 through to 2.5.STABLE4 could allow a remote attacker to
bypass Access Control Lists by sending a specially-crafted URL request
containing '%00': in such circumstances; the url_regex ACL may not properly
detect the malicious URL, allowing the attacker to effectively bypass the
ACL.

Background

Squid is a fully-featured Web Proxy Cache designed to run on Unix systems
that supports proxying and caching of HTTP, FTP, and other URLs, as well as
SSL support, cache hierarchies, transparent caching, access control lists
and many other features.

A bug in Squid allows users to bypass certain access controls by passing a
URL containing "%00" which exploits the Squid decoding function.
This may insert a NUL character into decoded URLs, which may allow users to
bypass url_regex access control lists that are enforced upon them.

In such a scenario, Squid will insert a NUL character after
the"%00" and it will make a comparison between the URL to the end
of the NUL character rather than the contents after it: the comparison does
not result in a match, and the user's request is not denied.

Impact

Restricted users may be able to bypass url_regex access control lists that
are enforced upon them which may cause unwanted network traffic as well as
a route for other possible exploits. Users of Squid 2.5STABLE4 and below
who require the url_regex features are recommended to upgrade to 2.5STABLE5
to maintain the security of their infrastructure.

Workaround

A workaround is not currently known for this issue. All users are advised
to upgrade to the latest version of Squid.