Squid ACL [url_regex] bypass vulnerability 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. Squid March 30, 2004 September 02, 2004: 02 45273 remote 2.5.5 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"
CAN-2004-0189 Squid 2.5.STABLE5 Release Announcement vorlon078