Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 236182

Summary: CVE-2007-0774 mod_jk overflow flaw
Product: [Retired] Red Hat Application Server Reporter: Mark J. Cox <mjc>
Component: mod_jkAssignee: Vivek Lakshmanan <viveklak>
Status: CLOSED ERRATA QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: 2.0CC: dbhole, security-response-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: impact=critical,reported=20070223,embargo=20070227,source=asf
Fixed In Version: RHSA-2007-0164 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-04-12 23:31:58 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Mark J. Cox 2007-04-12 11:57:10 UTC
+++ This bug was initially created as a clone of Bug #230045 +++

This issue is embargoed until probably Tue 27th Feb (it may well be Wed).
Please do not release anything until you see an update publically on the
Tomcat site (tomcat.apache.org).

-- VULNERABILITY DETAILS -----------------------------------------------

This vulnerability allows remote attackers to execute arbitrary code on
vulnerable installations of Apache Tomcat Connector. Authentication is not
required to exploit this vulnerability.

The specific flaw exists in the URI handler for the mod_jk.so library.
When parsing a long URL request, the URI worker map routine performs an
unsafe memory copy. This results in a stack overflow condition which can
be leveraged execute arbitrary code.

The vulnerable routine exists in native/common/jk_uri_worker_map.c:

    [...]
    char url[JK_MAX_URI_LEN+1];
    [...]
    for (i = 0; i < strlen(uri); i++)
    if (uri[i] == ';')
    break;
    else
    url[i] = uri[i]; // Overflow if length(uri) > 4095
    url[i] = '\0';
    [...]


This is the commit that added the flaw:

http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_uri_worker_map.c?view=diff&r1=424095&r2=424096

Patch from Tomcat security team attached.

-- VERSIONS ------------------------------------------------------------

Please note this issue only affected versions 1.2.19 and 1.2.20 of the
Apache Tomcat JK Web Server Connector and not previous versions.  Tomcat
5.5.20 and Tomcat 4.1.34 included a vulnerable version in their source
packages.  Other versions of Tomcat were not affected.

-- Additional comment from mjc@redhat.com on 2007-02-26 05:00 EST --
Created an attachment (id=148786)
patch from jclere

-- Additional comment from mjc@redhat.com on 2007-03-02 13:27 EST --
Removing embargo, this is now public at:
http://tomcat.apache.org/connectors-doc/miscellaneous/changelog.html

Comment 2 Red Hat Bugzilla 2007-04-12 23:31:58 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2007-0164.html