VirtualBox 5.1.28 fails to install on MacOS 10.13 due to KEXT security

I have tried to install VirtualBox 5.1.28 to macOS high sierra but it fails every time with the following screen: Virtual Box Installation Failure

After some looking around I found this thread and I did indeed see that it was blocking VirtualBox from installing.

Security and Privacy settings

After clicking allow and then trying to run the VirtualBox installer again it just fails again with the same generic error message and the same Security warning reappears in the "Security and Privacy" settings.

I tried to also run the pkg install from the terminal to see if I could get more information about why its failing but it doesnt help.

➜  Documents sudo installer -verbose -pkg VirtualBox.pkg -target /
installer: Package name is Oracle VM VirtualBox
installer: Installing at base path /
installer: Preparing for installation….....
installer: Preparing the disk….....
installer: Preparing Oracle VM VirtualBox….....
installer: Waiting for other installations to complete….....
installer: Configuring the installation….....
installer:
#
installer: Writing files….....
#
installer: Writing files….....
#
installer: Optimizing system for installed software….....
#
installer: Running package scripts….....
#
installer: Running package scripts….....
#
installer: Running package scripts….....
#
installer: Running package scripts….....
#
installer: Running package scripts….....
#
installer: Running package scripts….....
installer: Validating packages….....
#
installer: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)

The VirtualBox application does appear to install and it can be launched however nothing functions.

Does anyone have any ideas how to solve this?


Managed to solve it.

  • Eject the VirtualBox image from: Finder > Devices

    Remove VirtualBox device

  • Now allow the exception in: System Preferences > Security & Privacy

    Security & Privacy

  • Finally but not least click Allow button so that way the developer with the name "Oracle America, Inc" will be accepted and the installer using that certificate will run just fine (basically this installer is signed using "Oracle America, Inc" certificate so we are required to enable it use on our machine first)

  • Then try to install from the .dmg again so that it remounts the device.

Now its working fine for me.


For those still struggling with this issue:

IF YOU ARE CONNECTING VIA REMOTE DESKTOP OR SCREEN SHARING or have any other mouse emulation running: It is not possible to actually click the Allow button in this mode!!

So do the following:

  1. Run the installer until the location prompt
  2. open System Preferences
  3. Take a screenshot (CMD+SHIFT+3)
  4. Open the screenshot with Preview, and select from top left to the button, and note down the coordinates
  5. Then open Script Editor, and run the following line of code: tell application "System Events" to click at {890, 460} Use the coordinates from step 4. and make sure you don't move the Preferences window, and that no other window is overlaying the button. (It could be you need to give Script Editor Accessibility permission, but it will prompt you)

Now the button is actually clicked, and you can allow "Oracle America, Inc." to install. You might be prompted for a reboot. Then run the installer again and everything should work as expected!


The answer at the following link worked for me. It required running the script provided by dstroot, approving the kext in Security & Privacy and then installing with brew cask reinstall --force virtualbox --verbose --debug. https://github.com/caskroom/homebrew-cask/issues/39369


If the GUI solution does not work, reboot in Recovery mode and enter spctl kext-consent add VB5E2TV963, then reboot in normal mode and install should be ok.


For some reason when I clicked "allow" it felt as if the button "did nothing" but then when I tried it a third time the button "took" (after which point it always worked). Weird.

More ideas:

reboot into safe mode, try the allow button there

command line: sudo spctl --master-disable

This is a community wiki feel free to add some more ideas here.