Vulnerabilities > CVE-2006-4154 - Remote Format String vulnerability in Apache Mod_TCL

047910
CVSS 6.8 - MEDIUM
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
PARTIAL
network
apache
nessus

Summary

Format string vulnerability in the mod_tcl module 1.0 for Apache 2.x allows context-dependent attackers to execute arbitrary code via format string specifiers that are not properly handled in a set_var function call in (1) tcl_cmds.c and (2) tcl_core.c. This vulnerability is addressed in the following Apache module update: mod_tcl 1.0.1

Nessus

  • NASL familyGentoo Local Security Checks
    NASL idGENTOO_GLSA-200610-12.NASL
    descriptionThe remote host is affected by the vulnerability described in GLSA-200610-12 (Apache mod_tcl: Format string vulnerability) Sparfell discovered format string errors in calls to the set_var function in tcl_cmds.c and tcl_core.c. Impact : A remote attacker could exploit the vulnerability to execute arbitrary code with the rights of the user running the Apache server. Workaround : There is no known workaround at this time.
    last seen2020-06-01
    modified2020-06-02
    plugin id22915
    published2006-10-25
    reporterThis script is Copyright (C) 2006-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/22915
    titleGLSA-200610-12 : Apache mod_tcl: Format string vulnerability
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Gentoo Linux Security Advisory GLSA 200610-12.
    #
    # The advisory text is Copyright (C) 2001-2015 Gentoo Foundation, Inc.
    # and licensed under the Creative Commons - Attribution / Share Alike 
    # license. See http://creativecommons.org/licenses/by-sa/3.0/
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(22915);
      script_version("1.14");
      script_cvs_date("Date: 2019/08/02 13:32:43");
    
      script_cve_id("CVE-2006-4154");
      script_xref(name:"GLSA", value:"200610-12");
    
      script_name(english:"GLSA-200610-12 : Apache mod_tcl: Format string vulnerability");
      script_summary(english:"Checks for updated package(s) in /var/db/pkg");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Gentoo host is missing one or more security-related
    patches."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The remote host is affected by the vulnerability described in GLSA-200610-12
    (Apache mod_tcl: Format string vulnerability)
    
        Sparfell discovered format string errors in calls to the set_var
        function in tcl_cmds.c and tcl_core.c.
      
    Impact :
    
        A remote attacker could exploit the vulnerability to execute arbitrary
        code with the rights of the user running the Apache server.
      
    Workaround :
    
        There is no known workaround at this time."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security.gentoo.org/glsa/200610-12"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "All mod_tcl users should upgrade to the latest version:
        # emerge --sync
        # emerge --ask --oneshot --verbose '>=www-apache/mod_tcl-1.0.1'"
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:mod_tcl");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2006/10/24");
      script_set_attribute(attribute:"plugin_publication_date", value:"2006/10/25");
      script_set_attribute(attribute:"vuln_publication_date", value:"2006/10/13");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2006-2019 Tenable Network Security, Inc.");
      script_family(english:"Gentoo Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("qpkg.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Gentoo/release")) audit(AUDIT_OS_NOT, "Gentoo");
    if (!get_kb_item("Host/Gentoo/qpkg-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    
    if (qpkg_check(package:"www-apache/mod_tcl", unaffected:make_list("ge 1.0.1"), vulnerable:make_list("lt 1.0.1"))) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:qpkg_report_get());
      else security_warning(0);
      exit(0);
    }
    else
    {
      tested = qpkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "Apache mod_tcl");
    }
    
  • NASL familyWeb Servers
    NASL idAPACHE_2_2_3.NASL
    descriptionThe remote host appears to be running a version of Apache which is older than 2.2.3. This version is vulnerable to an off-by-one buffer overflow attack in the mod_rewrite module.
    last seen2020-06-01
    modified2020-06-02
    plugin id31659
    published2008-03-26
    reporterThis script is Copyright (C) 2008-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/31659
    titleApache < 2.2.3 mod_rewrite LDAP Protocol URL Handling Overflow
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    
    include("compat.inc");
    
    if(description)
    {
     script_id(31659);
     script_version("1.25");
     script_cvs_date("Date: 2018/06/29 12:01:03");
     
     script_cve_id("CVE-2006-3747", "CVE-2006-4154");
     script_bugtraq_id(19204);
     
     script_name(english:"Apache < 2.2.3 mod_rewrite LDAP Protocol URL Handling Overflow");
     script_summary(english:"Checks for version of Apache");
    
     script_set_attribute(attribute:"synopsis", value:
    "The remote version of Apache is vulnerable to an off-by-one buffer
    overflow attack." );
     script_set_attribute(attribute:"description", value:
    "The remote host appears to be running a version of Apache which is
    older than 2.2.3.
    
    This version is vulnerable to an off-by-one buffer overflow attack in
    the mod_rewrite module." );
     script_set_attribute(attribute:"see_also", value:"http://www.apache.org/dist/httpd/Announcement.html" );
     script_set_attribute(attribute:"solution", value:"Upgrade to version 2.2.3 or later.");
     script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
     script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
     script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L");
     script_set_cvss3_temporal_vector("CVSS:3.0/E:F/RL:O/RC:C");
     script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
     script_set_attribute(attribute:"exploit_available", value:"true");
     script_set_attribute(attribute:"exploit_framework_core", value:"true");
     script_set_attribute(attribute:"metasploit_name", value:'Apache Module mod_rewrite LDAP Protocol Buffer Overflow');
     script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
     script_cwe_id(189);
    
     script_set_attribute(attribute:"plugin_publication_date", value: "2008/03/26");
     script_set_attribute(attribute:"vuln_publication_date", value: "2006/07/28");
     script_set_attribute(attribute:"plugin_type", value:"remote");
     script_set_attribute(attribute:"cpe", value:"cpe:/a:apache:http_server");
     script_end_attributes();
    
     script_category(ACT_GATHER_INFO);
     
     script_copyright(english:"This script is Copyright (C) 2008-2018 Tenable Network Security, Inc.");
     script_family(english:"Web Servers");
     script_dependencie("apache_http_version.nasl");
     script_require_keys("installed_sw/Apache", "Settings/ParanoidReport");
     script_require_ports("Services/www", 80);
     exit(0);
    }
    
    #
    # The script code starts here
    #
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("audit.inc");
    include("install_func.inc");
    
    get_install_count(app_name:"Apache", exit_if_zero:TRUE);
    port = get_http_port(default:80);
    install = get_single_install(app_name:"Apache", port:port, exit_if_unknown_ver:TRUE);
    
    # Check if we could get a version first, then check if it was 
    # backported
    version = get_kb_item_or_exit('www/apache/'+port+'/version', exit_code:1);
    backported = get_kb_item_or_exit('www/apache/'+port+'/backported', exit_code:1);
    
    if (report_paranoia < 2 && backported) audit(AUDIT_BACKPORT_SERVICE, port, "Apache");
    source = get_kb_item_or_exit('www/apache/'+port+'/source', exit_code:1);
    
    # Check if the version looks like either ServerTokens Major/Minor
    # was used
    if (version =~ '^2(\\.2)?$') exit(1, "The banner from the Apache server listening on port "+port+" - "+source+" - is not granular enough to make a determination.");
    if (version !~ "^\d+(\.\d+)*$") exit(1, "The version of Apache listening on port " + port + " - " + version + " - is non-numeric and, therefore, cannot be used to make a determination.");
    if (version =~ '^2\\.2' && ver_compare(ver:version, fix:'2.2.3') == -1)
    {
      if (report_verbosity > 0)
      {
        report =
          '\n  Version source    : ' + source +
          '\n  Installed version : ' + version + 
          '\n  Fixed version     : 2.2.3\n';
        security_hole(port:port, extra:report);
      }
      else security_hole(port);
      exit(0);
    }
    else audit(AUDIT_LISTEN_NOT_VULN, "Apache", port, install["version"]);