Public Vulnerability Reports

Squid Web Proxy Cache Remote Denial of Service Vulnerability

10.11.04

BACKGROUND

Squid Web Proxy Cache is a full-featured web proxy cache designed to run
on Unix systems. It supports proxying HTTP, FTP, SSL, DNS, and has
support for SNMP.

DESCRIPTION

Remote exploitation of a design error in the SNMP module of Squid Web
Proxy Cache may lead to a denial of service.

The problem specifically exists due to an ASN1 parsing error where
certain header length combinations can slip through the validations
performed by the ASN1 parser, eventually causing the server to restart
and close all current connections. The server takes several seconds to
restart.

The offending code is in the asn_parse_header() routine of
snmplib/asn1.c, which under some cases will allow negative length fields
to pass validation. This leads to a failed xmalloc(), and the server
then assumes there is heap corruption or some other exceptional
condition, and restarts.

ANALYSIS

An attacker can exploit the above-described vulnerability to crash a
Squid server. If the attack is repeated, it can render the server
useless. Only a single UDP packet is required to trigger this
vulnerability, so the source address can be spoofed.

DETECTION

iDEFENSE has confirmed the existence of this vulnerability in Squid Web
Proxy Cache version 2.5-STABLE5 compiled with SNMP support as well as
Squid Web Proxy Cache version 3.0-PRE3-20040702 compiled with SNMP
support. It is suspected that earlier versions are vulnerable as well.

To find if a Squid binary is compiled with SNMP support one can run:
   
    strings /usr/local/squid/bin/squid | grep snmp_port

If this command returns silently, that binary was not built with SNMP
support and it is not vulnerable to this issue.

WORKAROUND

Disable SNMP support or filter the port that has SNMP processing
activated (3401 by default) to allow only SNMP data from trusted hosts.

To disable SNMP support on a squid binary that has SNMP support compiled
in, use the entry snmp_port 0 in the squid.conf configuration file.

To allow only the local interface to process SNMP, use the entry
"snmp_incoming_address 127.0.0.1" in the squid.conf configuration file.

Squid must be restarted to activate changes in the configuration file.

VENDOR RESPONSE

Patch relative to Squid-2.5.STABLE6:

   http://www.squid-cache.org/Versions/v2/2.5/bugs/squid-2.5.STABLE6-SNMP_core_dump.patch

Squid-2.5.STABLE7 release:

   ftp://ftp.squid-cache.org/pub/squid-2/STABLE/squid-2.5.STABLE7.tar.gz
   ftp://ftp.squid-cache.org/pub/squid-2/STABLE/squid-2.5.STABLE7.tar.bz2
   http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE7.tar.gz
   http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE7.tar.bz2

or any of the mirrors

   http://www.squid-cache.org/Mirrors/ftp-mirrors.html
   http://www.squid-cache.org/Mirrors/http-mirrors.html

CVE INFORMATION

The Common Vulnerabilities and Exposures (CVE) project has assigned the
names CAN-2004-0918 to these issues. This is a candidate for inclusion
in the CVE list (http://cve.mitre.org), which standardizes names for
security problems.

DISCLOSURE TIMELINE

09/15/2004   Initial vendor notification
09/15/2004   iDEFENSE clients notified
09/15/2004   Initial vendor response
10/05/2004   Coordinated public disclosure

CREDIT

The discoverer of this vulnerability wishes to remain anonymous.

Get paid for vulnerability research
http://www.idefense.com/poi/teams/vcp.jsp

LEGAL NOTICES

Copyright © 2004 Verisign, Inc.

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDEFENSE. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically, please
email customerservice@idefense.com for permission.

Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.