Squid ACL [url_regex] bypass vulnerability — GLSA 200403-11

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.

Affected packages

net-proxy/squid on all architectures
Affected versions < 2.5.5
Unaffected versions >= 2.5.5


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.


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.


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


Squid can be updated as follows:

 # emerge sync

 # emerge -pv ">=net-proxy/squid-2.5.5"
 # emerge ">=net-proxy/squid-2.5.5"


Release date
March 30, 2004

Latest revision
September 02, 2004: 02



Bugzilla entries