lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <47B0FCBB.6010802@ioactive.com>
Date: Mon, 11 Feb 2008 17:56:11 -0800
From: IOActive Advisories <advisory@...ctive.com>
To: bugtraq@...urityfocus.com
Subject: IOActive Security Advisory: Legacy mod_jk2 Buffer Overflow

IOActive Security Advisory

Title:		Multiple Buffer Overflows in Legacy mod_jk2 <= 2.0.3-DEV
Severity:	High

Date Discovered:	05.01.2007
Date Reported:		06.27.2007
Date Disclosed:		09.20.2007

Affected Products:
	mod_jk2 <= v2.0.3-DEV
	F5 BIG-IP <= 9.2.3.30 (Other versions were not tested)

Synopsis:
	IOActive has discovered a buffer overflow in the Host Header field in
the legacy version of the mod_jk2 Apache module
(jakarta-tomcat-connectors) which allows for remote code execution in
the context of the Apache process.


Description:
	mod_jk2 versions prior to 2.0.4 are vulnerable to multiple stack
overflow vulnerabilities. Specifically, IOActive has discovered multiple
locations where these vulnerabilities are exploitable via the Host
request header in any given request. These overflows all result in
remote code execution under the user of the running Apache process.
Although a legacy module which is end of life, certain vendors may use
this module in their products rendering them vulnerable to remote
exploitation.


Technical Details:
	Within the mod_jk2 module, the module registers with Apache a 	request
handler which parses the entire content of the request, specifically the
Host headers, in order to determine which Tomcat worker to forward the
request to. For example, multiple buffer overflow opportunities exist
within the following code segments:


native2\common\jk_uriMap.c: line ~269
	if (port) {
		if (vhost) {
			if (strchr(vhost, ':'))
				strcpy(hostname, vhost);
			else
				sprintf(hostname, "%s:%d", vhost, port);
		}
		else
			sprintf(hostname, "*:%d", port);
	}
	else if (vhost)
		strcpy(hostname, vhost);


native2\common\jk_uriMap.c: line ~842
	char key[1024];

	if (!vhost && !port)
		return uriMap->vhosts->get(env, uriMap->vhosts, "*");
	if (!vhost)
		vhost = "*";
	sprintf(key, "%s:%d", vhost, port);
	return uriMap->vhcache->get(env, uriMap->vhcache, key);


In each of these code segments, exploitable stack overflows on the Host
request header are visible. Additionally, in every circumstance, the
condition occurs when a Hostname is provided within the Host: Header
request which is longer than 1024 characters. Exploitation of these
overflows is considered trivial.


Remediation:
	Upgrade to the latest version of the legacy mod_jk2 (mod_jk2 2.0.4) or
migrate to the non-legacy reimplementation of this package, the new
jakarta-tomcat-connectors, called mod_jk.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ