[<prev] [next>] [day] [month] [year] [list]
Message-ID: <7f9b2304efceb110c45c6aabadfd5943@rkw.io>
Date: Mon, 17 Jul 2017 09:47:28 +0100
From: Mark Wadham <fd@....io>
To: fulldisclosure@...lists.org
Subject: [FD] CVE-2017-7642 Local root privesc in Hashicorp
vagrant-vmware-fusion <= 4.0.20
I'm a big fan of Hashicorp but this is an awful bug to have in software
of their
calibre.
POC:
https://m4.rkw.io/blog/cve20177642-local-root-privesc-in-hashicorp-vagrantvmwarefusion--4020.html
Their vagrant plugin for vmware fusion uses a product called Ruby
Encoder to
protect their proprietary ruby code. It does this by turning the ruby
code into
bytecode and executing it directly.
Unfortunately the execution chain necessary for this to work is not
safe. After
installing the plugin, the first time you "vagrant up" any vagrant file
using
vmware fusion it will create some files in
~/.vagrant.d/gems/2.2.5/gems/vagrant-vmware-fusion-4.0.18/bin:
vagrant_vmware_desktop_sudo_helper
vagrant_vmware_desktop_sudo_helper_wrapper_darwin_386
vagrant_vmware_desktop_sudo_helper_wrapper_darwin_amd64
vagrant_vmware_desktop_sudo_helper_wrapper_linux_386
vagrant_vmware_desktop_sudo_helper_wrapper_linux_amd64
The first one is an encoded ruby script, the others are "sudo helper"
binaries
for the different platforms supported by the plugin. Of these sudo
helpers,
the one that corresponds to your platform will be made suid root when
vagrant up
is run.
Unfortunately the helper calls the ruby script with system("ruby <script
path>")
- i.e. it doesn't verify the path to the ruby script and it doesn't
scrub the
PATH variable either. We can easily exploit this to get root.
Hashicorp were quick to respond and kindly paid me a small bounty for my
trouble.
The issue was acknowledged by Hashicorp on 08/04/17 and fixed on
14/07/17.
_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/
Powered by blists - more mailing lists