COMMAND
Lotus Domino
SYSTEMS AFFECTED
All releases of Lotus Domino R5 prior to 5.0.7, for all platforms
PROBLEM
Following is based on a Defcom Labs Advisory def-2001-20 by Peter
Grundl. The Lotus Domino Web Server contains multiple flaws that
could allow an attacker to cause a Denial of Service situation.
HTTP Header DoS
===============
Affected headers are "Accept", "Accept-Charset", "Accept-Encoding"
"Accept-Language" and "Content-Type". Unique values sent with
these headers are not freed properly. This means that by
repeatedly requesting eg. document root (/) with various accept
fields (accept: a, accept: aa, accept: aaa aso.) will eventually
result in the server running out of physical memory and the
server will display a message similar to this one:
"HTTP Server: Could allocate 8036 bytes of memoryOut of memory in
HTMemPoolAlloc (file htmpool.c, line 506).Program aborted."
and one of two things will happen then:
1) The Lotus Server will continue to run (although it no longer
answers on TCP port 80), and no function that needs a working
thread will work (this includes task manager, as the parser
process is preventing other processes from requesting a
thread). The occupied memory will not be released.
2) The Lotus Server process will crash, and will need a restart in
order to regain functionality. The rest of the services,
unrelated to the Lotus Server, on the host will continue to
function.
Unicode DoS:
============
Sending certain combinations of unicode chars (16 bit) to the
server in a GET request triggers a server exception that will
crash the Domino server. Example:
GET /190xchr(430) HTTP/1.0
If qnc.exe is removed from the system, the crash will only affect
the web server.
DOS-device DoS:
===============
This Denial of Service only affects Windows and OS/2 platforms!
You can access DOS-devices through the web server, and if this is
done through the cgi-bin directory, a ncgihttp.exe process will
be opened to handle the execution of eg. con. This processing
will not finish and when approx. 400 of these requests have been
made, the server will no longer answer requests to tcp port 80.
CORBA DoS:
==========
A continous stream of connects with a payload of 10K data followed
by return to TCP port 63148 (DIIOP - CORBA) results in the CPU on
the target host jumping to 100% and the memory slowly filling up,
and the harddisk being written to constantly during the attack.
The CPU usage will continue to remain at 100% long after the
attack is over.
URL parsing:
============
Big HTTP requests (8k) to TCP port 80 of /'s result in a lot of
CPU consumption (99-100%) opposed to eg. 8k of a's that result in
approx. 1% CPU usage.
SOLUTION
Download and upgrade to Notes/Domino 5.0.7:
http://www.notes.net/qmrdown.nsf/QMRWelcome