[Full-Disclosure] Remote Vulnerabilties in mod_ntlm
mattmurphy at kc.rr.com
Mon Apr 21 18:11:43 BST 2003
mod_ntlm is an Apache module (originially designed for Apache 1.3, now
available for Apache 2.0) that provides the ability for Apache services to
authenticate users via the NTLM authentication technology that is largely
specific to Microsoft IIS.
Home page: http://www.sourceforge.net/projects/modntlm
mod_ntlm contains a pair of remotely-exploitable vulnerabilities in its data
logging routine. The vulnerabilities occur in a default build. The
mod_ntlm "log()" function contains a pair of exploitable error conditions:
log(const request_rec * r, const char *format,...)
if ((s = (char *) malloc(2048)) == NULL)
vsprintf(s, format, ap);
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO | APLOG_NOTICE, r, s);
The function is called with user-supplied input in various locations in the
code. The first vulnerability is a heap overflow -- if any user-supplied
input is greater than 2048 characters, memory management structures are
overwritten, and arbitrary code execution is possible. Secondly, an
incorrect call to ap_log_rerror(). The last parameter to ap_log_rerror() is
not a log line, but a format string. Due to the previous decoding
operation, it becomes possible to pass format specifiers to ap_log_rerror().
A carefully crafted format string may allow code execution.
Either of the following two sessions will cause httpd to exit due to a
GET / HTTP/1.0
GET / HTTP/1.0
Similarly, a proxy server can be exploited by using an external URL
(http://www.yahoo.com/, for instance), in place of "/", and using
Proxy-Authorization, in place of Authorization in the examples above.
Apache 1.3: mod_ntlm v0.4 and prior
Apache 2.0: mod_ntlmv2 v0.1
The vulnerability was submitted to the vendor via SourceForge at:
The vendor has not responded to the bug report as of the time of writing of
Full-Disclosure is hosted and sponsored by Secunia.