A defect in multiple releases of Cisco IOS software will cause a Cisco
router or switch to halt and reload if the IOS HTTP service is enabled and
browsing to "http://<router-ip>/%%" is attempted. This defect can be
exploited to produce a denial of service (DoS) attack. This defect has been
discussed on public mailing lists and should be considered public information.
The vulnerability, identified as Cisco bug ID CSCdr36952, affects
virtually all mainstream Cisco routers and switches running Cisco IOS software
releases 11.1 through 12.1, inclusive. The vulnerability has been corrected and
Cisco is making fixed releases available to replace all affected IOS releases.
Customers are urged to upgrade to releases that are not vulnerable to this
defect as shown in detail below.
The vulnerability can be mitigated by disabling the IOS HTTP server,
using an access-list on an interface in the path to the router to prevent
unauthorized network connections to the HTTP server, or applying an
access-class option directly to the HTTP server itself. The IOS HTTP server is
enabled by default only on Cisco 1003, 1004, and 1005 routers that are not
configured. In all other cases, the IOS http server must be explicitly enabled
in order to exploit this defect.
This section provides details on affected products.
The following list of products are affected if they are running a
release of Cisco IOS software that has the defect. To determine if a Cisco
product is running IOS, log in to the device and issue the command
show version. Classic Cisco IOS software will
identify itself simply as "Internetwork Operating System Software" or "IOS
(tm)" software and will display a version number. Other Cisco devices either
will not have the show version command, or will give
different output. Compare the version number obtained from the router with the
versions presented in the Software Versions and
Fixes section below.
Cisco devices that may be running affected releases include:
Cisco routers in the AGS/MGS/CGS/AGS+, IGS, RSM, 800, ubr900, 1000,
2500, 2600, 3000, 3600, 3800, 4000, 4500, 4700, AS5200, AS5300, AS5800, 6400,
7000, 7200, ubr7200, 7500, and 12000 series.
Most recent versions of the LS1010 ATM switch.
The Catalyst 6000 if it is running IOS.
Some versions of the Catalyst 2900XL and 3500XL LAN switches.
The Cisco DistributedDirector.
For some products, the affected software releases are relatively new
and may not be available on every device listed above.
Products Confirmed Not Vulnerable
If you are not running classic Cisco IOS software then you
are not affected by this vulnerability. Cisco products that do not
run classic Cisco IOS software and thus are not affected by this defect
700 series dialup routers (750, 760, and 770 series) are not
Catalyst 1900, 2800, 2900, 3000, and 5000 series LAN switches are not
affected. However, optional router modules running Cisco IOS software in switch
backplanes, such as the RSM module for the Catalyst 5000 and 5500, are affected
(see the Affected Products section above).
The Catalyst 6000 is not affected if it is not running IOS.
WAN switching products in the IGX and BPX lines are not affected.
The MGX (formerly known as the AXIS shelf) is not affected.
No host-based software is affected.
The Cisco PIX Firewall is not affected.
The Cisco LocalDirector is not affected.
The Cisco Cache Engine is not affected.
No other Cisco products are currently known to be affected by these
The HTTP server was introduced in IOS release 11.0 to extend router
management to the worldwide web. The defect appears in a function added in IOS
releases 11.1 and 11.2 that parses special characters in a URI of the format
"%nn" where each "n" represents a hexadecimal digit. The vulnerability is
exposed when an attempt is made to browse to "http://<router-ip>/%%". Due
to the defect, the function incorrectly parses "%%" and it enters an infinite
loop. A watchdog timer expires two minutes later and forces the router to crash
and reload. Once it has resumed normal operation, the router is again
vulnerable to the same defect until the HTTP server is disabled, access from
untrusted hosts is prohibited, or the router is upgraded to a release of Cisco
IOS software that is not vulnerable to this defect.
In rare cases, the affected device fails to reload, forcing the
administrator to cycle the power to resume operation. Some devices have
reloaded without providing stack traces and may indicate wrongly that they were
"restarted by power-on" when that did not occur.
The HTTP server is not enabled by default except
on unconfigured Cisco model 1003, 1004, and 1005 routers. Once initial access
is granted to configure the router, the customer may disable or limit access to
the HTTP server by changing the configuration. Once the new configuration has
been saved, the the HTTP server will not be enabled automatically when the
In lieu of an upgrade, the threat may be eliminated or reduced by any
of the following measures:
Completely disable the HTTP server using the command no
ip http server while in global configuration mode.
If the HTTP server must remain enabled while unrepaired, network
access to it can be controlled by applying a standard access list to the HTTP
service itself. For example, if the router's HTTP service should be reachable
only from a browser running on a computer at IP address 10.1.2.3, then use the
following commands in global configuration mode to create a standard access
list and apply it to the HTTP server: access-list 1 permit 10.1.2.3 ip http access-class 1
If access list 1 is already in use, then choose another number in the
range 0-99. The implicit deny rule added to the end of every access list will
prevent access from any other IP addresses.
Prevent network access to a vulnerable HTTP server by blocking
traffic in the network path to the server's port with an extended access list.
Such a list would be applied on an interface of the vulnerable router itself or
on another Cisco router in the path of a potential attack, e.g., applied
inbound on the outside interface of an edge router. The port number used in the
extended access list statement must be the default port used by the HTTP
server, port 80, or equal to whatever value it may have been set via the
ip http port command. Please use this particular
workaround with great care; it cannot be recommended confidently without
knowledge of specific customer network configurations.
Be sure to save the resulting configuration in memory so that
protection of the server is not inadvertently removed after a reload.
The following table summarizes the major releases of Cisco IOS software
affected by the defect described in this notice and scheduled dates on which
the earliest corresponding fixed releases will be available. All dates are
tentative and subject to change.
Each row of the table shows the earliest release that contains the fix
for the vulnerability in the "Rebuild", "Interim", or "Maintenance" columns,
presented in release number order.
A Maintenance Release is the most heavily-tested and highly-recommended
release in a given row.
A Rebuild Release is constructed from the previous maintenance or
mainline release with the addition of a code fix for the specific defect.
Although it receives less testing than a maintenance release, it is built from
the previous maintenance release and includes only the minimum changes
necessary to address the specific defect.
An Interim Release has much less testing than a maintenance release and
should be selected only if there is no other suitable release that fixes the
To find an appropriate replacement for a vulnerable release, compare
the release number as reported by the show version
command to the major releases in the first column below. For
example, if your device reports that it is running 12.0(5)S, find the row in
the table for 12.0S. Reading across to the right, you find that the earliest
maintenance release containing the fix will be 12.0(11)S, which will be
available for download from CCO on or about 2000-5-29. The earliest interim
release containing the fix will be 12.0(10.6)S, available on or about
2000-05-15. The rebuild of the previous maintenance release, 12.0(10)S1, should
be available on 2000-05-01.
The only difference between 12.0(10)S and 12.0(10)S1 is the minimum
change necessary to fix this vulnerability. In particular, 12.0(10)S1 will not
contain any fixes or features applied to any interim releases since the earlier
maintenance release, whereas the interim release, 12.0(10.6)S, contains the fix
as well as the features and instabilities introduced by previous interim
releases, 12.0(10.1)S through 12.0(10.5)S. Therefore, based on this example:
If you can apply a workaround or otherwise wait for the maintenance
release, then upgrade to 12.0(11)S.
If you are running 12.0(10.1)S to 12.0(10.5)S inclusive and need some
functionality introduced in those interim releases, upgrade to 12.0(10.6)S.
Upgrade to 12.0(11)S or later as soon as possible.
If you are running release 12.0(10)S or earlier, upgrade to
In all cases, customers should exercise caution to be certain the
devices to be upgraded contain sufficient memory and that their current
hardware and software configurations will continue to be supported properly by
the new release.
Access & Dial Early Deployment (ED): c5200, c5300, c5800,
xDSL support: 6160, 6260
xDSL support: c6400
xDSL NRP support: c6400r
ELB Early Deployment (ED): cat6k, 8500, ls1010, 7500, 7200,
Cable/broadband Early Deployment (ED): ubr7200
New technology Early Deployment (ED): all
Early Deployment (ED): limited platforms
Early Deployment (ED): limited platforms
* All dates are estimated and subject to change.
** Interim releases are subjected to less rigorous testing than
regular maintenance releases, and may have serious bugs.
*** 12.1XA is obsolete. Customers should upgrade to 12.1(2)T
when it becomes available. This is not a misprint.
This vulnerability was announced on the BUGTRAQ mailing list on
2000-04-27 with sufficient information that anyone could exercise the flaw. The
Cisco PSIRT responded the same day and acknowledged the vulnerability in e-mail
to the BUGTRAQ list with preliminary information regarding estimates of
affected platforms and releases as well as a workaround to mitigate the threat.
Following the response to BUGTRAQ, the Cisco PSIRT sent a preliminary warning
with similar content to firstname.lastname@example.org and several internal
Cisco mailing lists.
This vulnerability has been discussed in detail on full-disclosure
mailing lists and web sites, and requires no special equipment to be exploited.
The Cisco PSIRT has received no reports of malicious exploitation of
THIS DOCUMENT IS PROVIDED ON AN "AS IS" BASIS AND DOES NOT IMPLY ANY KIND OF GUARANTEE OR WARRANTY, INCLUDING THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. YOUR USE OF THE INFORMATION ON THE DOCUMENT OR MATERIALS LINKED FROM THE DOCUMENT IS AT YOUR OWN RISK. CISCO RESERVES THE RIGHT TO CHANGE OR UPDATE THIS DOCUMENT AT ANY TIME.
A stand-alone copy or paraphrase of the text of this document that omits the distribution URL is an uncontrolled copy, and may lack important information or contain factual errors. The information in this document is intended for end-users of Cisco products.