Vulnerabilities > CVE-2008-4769 - Path Traversal vulnerability in Wordpress

047910
CVSS 9.3 - CRITICAL
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
network
wordpress
CWE-22
critical
nessus
exploit available

Summary

Directory traversal vulnerability in the get_category_template function in wp-includes/theme.php in WordPress 2.3.3 and earlier, and 2.5, allows remote attackers to include and possibly execute arbitrary PHP files via the cat parameter in index.php. NOTE: some of these details are obtained from third party information.

Vulnerable Configurations

Part Description Count
Application
Wordpress
148

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Relative Path Traversal
    An attacker exploits a weakness in input validation on the target by supplying a specially constructed path utilizing dot and slash characters for the purpose of obtaining access to arbitrary files or resources. An attacker modifies a known path on the target in order to reach material that is not available through intended channels. These attacks normally involve adding additional path separators (/ or \) and/or dots (.), or encodings thereof, in various combinations in order to reach parent directories or entirely separate trees of the target's directory structure.
  • Directory Traversal
    An attacker with access to file system resources, either directly or via application logic, will use various file path specification or navigation mechanisms such as ".." in path strings and absolute paths to extend their range of access to inappropriate areas of the file system. The attacker attempts to either explore the file system for recon purposes or access directories and files that are intended to be restricted from their access. Exploring the file system can be achieved through constructing paths presented to directory listing programs, such as "ls" and 'dir', or through specially crafted programs that attempt to explore the file system. The attacker engaging in this type of activity is searching for information that can be used later in a more exploitive attack. Access to restricted directories or files can be achieved through modification of path references utilized by system applications.
  • File System Function Injection, Content Based
    An attack of this type exploits the host's trust in executing remote content including binary files. The files are poisoned with a malicious payload (targeting the file systems accessible by the target software) by the attacker and may be passed through standard channels such as via email, and standard web content like PDF and multimedia files. The attacker exploits known vulnerabilities or handling routines in the target processes. Vulnerabilities of this type have been found in a wide variety of commercial applications from Microsoft Office to Adobe Acrobat and Apple Safari web browser. When the attacker knows the standard handling routines and can identify vulnerabilities and entry points they can be exploited by otherwise seemingly normal content. Once the attack is executed, the attackers' program can access relative directories such as C:\Program Files or other standard system directories to launch further attacks. In a worst case scenario, these programs are combined with other propagation logic and work as a virus.
  • Using Slashes and URL Encoding Combined to Bypass Validation Logic
    This attack targets the encoding of the URL combined with the encoding of the slash characters. An attacker can take advantage of the multiple way of encoding an URL and abuse the interpretation of the URL. An URL may contain special character that need special syntax handling in order to be interpreted. Special characters are represented using a percentage character followed by two digits representing the octet code of the original character (%HEX-CODE). For instance US-ASCII space character would be represented with %20. This is often referred as escaped ending or percent-encoding. Since the server decodes the URL from the requests, it may restrict the access to some URL paths by validating and filtering out the URL requests it received. An attacker will try to craft an URL with a sequence of special characters which once interpreted by the server will be equivalent to a forbidden URL. It can be difficult to protect against this attack since the URL can contain other format of encoding such as UTF-8 encoding, Unicode-encoding, etc.
  • Manipulating Input to File System Calls
    An attacker manipulates inputs to the target software which the target software passes to file system calls in the OS. The goal is to gain access to, and perhaps modify, areas of the file system that the target software did not intend to be accessible.

Exploit-Db

descriptionWordPress 2.3.3 'cat' Parameter Directory Traversal Vulnerability. CVE-2008-4769. Webapps exploit for php platform
idEDB-ID:31670
last seen2016-02-03
modified2008-04-18
published2008-04-18
reporterGerendi Sandor Attila
sourcehttps://www.exploit-db.com/download/31670/
titleWordPress <= 2.3.3 - 'cat' Parameter Directory Traversal Vulnerability

Nessus

  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-1871.NASL
    descriptionSeveral vulnerabilities have been discovered in wordpress, weblog manager. The Common Vulnerabilities and Exposures project identifies the following problems : - CVE-2008-6762 It was discovered that wordpress is prone to an open redirect vulnerability which allows remote attackers to conduct phishing attacks. - CVE-2008-6767 It was discovered that remote attackers had the ability to trigger an application upgrade, which could lead to a denial of service attack. - CVE-2009-2334 It was discovered that wordpress lacks authentication checks in the plugin configuration, which might leak sensitive information. - CVE-2009-2854 It was discovered that wordpress lacks authentication checks in various actions, thus allowing remote attackers to produce unauthorised edits or additions. - CVE-2009-2851 It was discovered that the administrator interface is prone to a cross-site scripting attack. - CVE-2009-2853 It was discovered that remote attackers can gain privileges via certain direct requests. - CVE-2008-1502 It was discovered that the _bad_protocol_once function in KSES, as used by wordpress, allows remote attackers to perform cross-site scripting attacks. - CVE-2008-4106 It was discovered that wordpress lacks certain checks around user information, which could be used by attackers to change the password of a user. - CVE-2008-4769 It was discovered that the get_category_template function is prone to a directory traversal vulnerability, which could lead to the execution of arbitrary code. - CVE-2008-4796 It was discovered that the _httpsrequest function in the embedded snoopy version is prone to the execution of arbitrary commands via shell metacharacters in https URLs. - CVE-2008-5113 It was discovered that wordpress relies on the REQUEST superglobal array in certain dangerous situations, which makes it easier to perform attacks via crafted cookies.
    last seen2020-06-01
    modified2020-06-02
    plugin id44736
    published2010-02-24
    reporterThis script is Copyright (C) 2010-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/44736
    titleDebian DSA-1871-1 : wordpress - several vulnerabilities
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Debian Security Advisory DSA-1871. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(44736);
      script_version("1.20");
      script_cvs_date("Date: 2019/08/02 13:32:22");
    
      script_cve_id("CVE-2008-1502", "CVE-2008-4106", "CVE-2008-4769", "CVE-2008-4796", "CVE-2008-5113", "CVE-2008-6762", "CVE-2008-6767", "CVE-2009-2334", "CVE-2009-2851", "CVE-2009-2853", "CVE-2009-2854");
      script_bugtraq_id(28599, 31068, 31887, 35584, 35935);
      script_xref(name:"DSA", value:"1871");
    
      script_name(english:"Debian DSA-1871-1 : wordpress - several vulnerabilities ");
      script_summary(english:"Checks dpkg output for the updated package");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Debian host is missing a security-related update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Several vulnerabilities have been discovered in wordpress, weblog
    manager. The Common Vulnerabilities and Exposures project identifies
    the following problems :
    
      - CVE-2008-6762
        It was discovered that wordpress is prone to an open
        redirect vulnerability which allows remote attackers to
        conduct phishing attacks.
    
      - CVE-2008-6767
        It was discovered that remote attackers had the ability
        to trigger an application upgrade, which could lead to a
        denial of service attack.
    
      - CVE-2009-2334
        It was discovered that wordpress lacks authentication
        checks in the plugin configuration, which might leak
        sensitive information.
    
      - CVE-2009-2854
        It was discovered that wordpress lacks authentication
        checks in various actions, thus allowing remote
        attackers to produce unauthorised edits or additions.
    
      - CVE-2009-2851
        It was discovered that the administrator interface is
        prone to a cross-site scripting attack.
    
      - CVE-2009-2853
        It was discovered that remote attackers can gain
        privileges via certain direct requests.
    
      - CVE-2008-1502
        It was discovered that the _bad_protocol_once function
        in KSES, as used by wordpress, allows remote attackers
        to perform cross-site scripting attacks.
    
      - CVE-2008-4106
        It was discovered that wordpress lacks certain checks
        around user information, which could be used by
        attackers to change the password of a user.
    
      - CVE-2008-4769
        It was discovered that the get_category_template
        function is prone to a directory traversal
        vulnerability, which could lead to the execution of
        arbitrary code.
    
      - CVE-2008-4796
        It was discovered that the _httpsrequest function in the
        embedded snoopy version is prone to the execution of
        arbitrary commands via shell metacharacters in https
        URLs.
    
      - CVE-2008-5113
        It was discovered that wordpress relies on the REQUEST
        superglobal array in certain dangerous situations, which
        makes it easier to perform attacks via crafted cookies."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531736"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=536724"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504243"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=500115"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504234"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504771"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-6762"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-6767"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2009-2334"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2009-2854"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2009-2851"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2009-2853"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-1502"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-4106"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-4769"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-4796"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-5113"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.debian.org/security/2009/dsa-1871"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "Upgrade the wordpress packages.
    
    For the oldstable distribution (etch), these problems have been fixed
    in version 2.0.10-1etch4.
    
    For the stable distribution (lenny), these problems have been fixed in
    version 2.5.1-11+lenny1."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"d2_elliot_name", value:"Moodle <= 1.8.4 RCE");
      script_set_attribute(attribute:"exploit_framework_d2_elliot", value:"true");
      script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
      script_set_attribute(attribute:"canvas_package", value:'D2ExploitPack');
      script_cwe_id(20, 22, 59, 79, 94, 264, 287, 352);
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:wordpress");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:4.0");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:5.0");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2008/03/25");
      script_set_attribute(attribute:"patch_publication_date", value:"2009/08/23");
      script_set_attribute(attribute:"plugin_publication_date", value:"2010/02/24");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2010-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Debian Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("debian_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Debian/release")) audit(AUDIT_OS_NOT, "Debian");
    if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (deb_check(release:"4.0", prefix:"wordpress", reference:"2.0.10-1etch4")) flag++;
    if (deb_check(release:"5.0", prefix:"wordpress", reference:"2.5.1-11+lenny1")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:deb_report_get());
      else security_hole(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyCGI abuses
    NASL idWORDPRESS_CAT_FILE_INCLUDE.NASL
    descriptionThe version of WordPress installed on the remote host fails to sanitize user input to the
    last seen2020-06-01
    modified2020-06-02
    plugin id32080
    published2008-04-29
    reporterThis script is Copyright (C) 2008-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/32080
    titleWordPress index.php 'cat' Parameter Local File Inclusion
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(32080);
      script_version("1.15");
      script_cvs_date("Date: 2018/11/15 20:50:19");
    
      script_cve_id("CVE-2008-4769");
      script_bugtraq_id(28845);
      script_xref(name:"Secunia", value:"29949");
    
      script_name(english:"WordPress index.php 'cat' Parameter Local File Inclusion");
      script_summary(english:"Attempts to read a local file with WordPress.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote web server contains a PHP application that is affected by a
    local file include attack.");
      script_set_attribute(attribute:"description", value:
    "The version of WordPress installed on the remote host fails to
    sanitize user input to the 'cat' parameter of the 'index.php' script.
    Regardless of PHP's 'register_globals' setting, an unauthenticated
    attacker can exploit this issue to view arbitrary files or to execute
    arbitrary PHP code on the remote host, subject to the privileges under
    which the web server operates.");
      script_set_attribute(attribute:"see_also", value:"https://core.trac.wordpress.org/changeset/7586");
      script_set_attribute(attribute:"solution", value:"Apply patches based on the SVN changeset referenced above.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
      script_set_attribute(attribute:"exploit_available", value:"false");
      script_cwe_id(22);
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2008/04/02");
      script_set_attribute(attribute:"patch_publication_date", value:"2008/04/02");
      script_set_attribute(attribute:"plugin_publication_date", value:"2008/04/29");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:wordpress:wordpress");
      script_end_attributes();
    
      script_category(ACT_ATTACK);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2008-2018 Tenable Network Security, Inc.");
    
      script_dependencies("wordpress_detect.nasl", "os_fingerprint.nasl");
      script_require_keys("installed_sw/WordPress", "www/PHP");
      script_require_ports("Services/www", 80);
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("install_func.inc");
    
    app = "WordPress";
    get_install_count(app_name:app, exit_if_zero:TRUE);
    
    port = get_http_port(default:80, php:TRUE);
    
    install = get_single_install(
      app_name : app,
      port     : port
    );
    
    dir = install['path'];
    install_url = build_url(port:port, qs:dir);
    
    # Unless we're being paranoid, only test Windows.
    if (report_paranoia < 2)
    {
      os = get_kb_item("Host/OS");
      if (!os || "Windows" >!< os) audit(AUDIT_OS_NOT, "affected");
    }
    
    # Try to retrieve a local file.
    w = http_send_recv3(
      method:"GET",
      item:dir + "/index.php?cat=1.php/../../../../xmlrpc",
      port:port,
      exit_on_fail:TRUE
    );
    res = w [2];
    
    # There's a problem if we see an error from xmlrpc.php.
    if ('XML-RPC server accepts POST requests only' >< res)
    {
      security_warning(port);
      exit(0);
    }
    else audit(AUDIT_WEB_APP_NOT_AFFECTED, app, install_url);