-----BEGIN PGP SIGNED MESSAGE----- ============================================================================= FreeBSD-SA-02:12 Security Advisory FreeBSD, Inc. Topic: multiple security vulnerabilities in squid port Category: ports Module: squid24 Announced: 2002-02-21 Credits: Jouko Pynnonen Henrik Nordstrom Affects: Ports collection prior to the correction date Corrected: 2002-02-19 13:46:22 UTC FreeBSD only: NO I. Background The Squid Internet Object Cache is a web proxy/cache. II. Problem Description The following security vulnerabilities are known to exist in versions of Squid prior to 2.4-STABLE4 (port version 2.4_8): 1) The optional SNMP monitoring interface suffers from a memory leak. The FreeBSD port does not normally include this code, but it can be enabled with a compile-time option. 2) A buffer overflow exists in the code charged with parsing the authentication portion of FTP URLs. 3) The optional HTCP interface can not be properly disabled at run-time. The FreeBSD port does not normally include this code, but it can be enabled with a compile-time option. The squid port is not installed by default, nor is it "part of FreeBSD" as such: it is part of the FreeBSD ports collection, which contains thousands of third-party applications in a ready-to-install format. The ports collection shipped with FreeBSD 4.5 contains this problem since it was discovered after the release. FreeBSD makes no claim about the security of these third-party applications, although an effort is underway to provide a security audit of the most security-critical ports. III. Impact 1) An attacker with the ability to send packets to the Squid SNMP port can cause Squid to run out of memory and crash. (NOTE: The FreeBSD port does not have SNMP enabled by default.) 2) An authorized user of the squid proxy may submit a specially crafted ftp:// request in order to crash the squid process, causing a denial of service. It may also be possible to cause the execution of arbitrary code with the privilege level of the squid process, although no such exploits are known to exist at this time. 3) Unauthorized users may utilize cache resources by using HTCP. (NOTE: The FreeBSD port does not have HTCP enabled by default.) IV. Workaround 1) As regards the SNMP issue, the following configuration statement will disable the SNMP support altogether: snmp_port 0 2) Optionally, set up a firewall rule to block incoming packets to the Squid SNMP port (normally, UDP port 3401) from untrusted hosts. 3) For the second vulnerability, deny forwarding of non-anonymous FTP URLs by inserting the following rules at the top of squid.conf, prior to any http_access allow lines: acl non_anonymous_ftp url_regex -i ftp://[^/@]*@ http_access deny non_anonymous_ftp 4) No workaround exists for the HTCP issue except to set up a firewall rule to block incoming packets to the Squid HTCP port (normally, UDP port 4827) from untrusted hosts. 5) Alternatively, deinstall the squid port/package. V. Solution Do one of the following: 1) Upgrade your entire ports collection and rebuild the port. 2) Deinstall the old package and install a new package dated after the correction date, obtained from the following directories: [i386] ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/www/ squid-2.4_8.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/www/ squid-2.4_8.tgz [alpha] Packages are not automatically generated for the alpha architecture at this time due to lack of build resources. NOTE: It may be several days before updated packages are available. 3) Download a new port skeleton for the squid port from: http://www.freebsd.org/ports/ and use it to rebuild the port. 4) Use the portcheckout utility to automate option (3) above. The portcheckout port is available in /usr/ports/devel/portcheckout or the package can be obtained from: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/Latest/portcheckout.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/Latest/portcheckout.tgz VI. Correction details The following list contains the revision numbers of each file that was corrected in the FreeBSD ports collection. Path Revision - ------------------------------------------------------------------------- ports/www/squid24/Makefile 1.87 ports/www/squid24/distinfo 1.63 - ------------------------------------------------------------------------- VII. References -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (FreeBSD) Comment: For info see http://www.gnupg.org iQCVAwUBPHT5kVUuHi5z0oilAQFGvwQAj+u0n0OOsV7hxxkMEgCBaZg/LBJWmOkR FwOCxy27eSgSdEqoZcNpZlPM+aFUf6r9bWbg5+S66R+kLb7cMOblgZX69YoU6kn7 QedUoHyBWYuoNd5pBG1VJmyW4NZrQ4vPOM7bdfddSNxt1YpW5P0NNjPaTTmBe96E tZg1bT4hXhM= =N1OC -----END PGP SIGNATURE-----