Settings

Theme

Oracle VM VirtualBox – VM Escape via VGA Device

github.com

93 points by serhack_ 7 months ago · 50 comments

Reader

AshamedCaptain 7 months ago

For the record: Oracle does not consider that the 3D feature should be enabled when the VM is untrusted. It's still classified as experimental and will likely be so for another decade at least.

lyu07282 7 months ago

The linked repo wasn't updated in 8 months, up-to-date code is here:

https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Devic...

I think this was the fix:

https://www.virtualbox.org/changeset/108903/vbox/trunk/src/V...

  • johnisgood 7 months ago

    Thanks. Wild. I bet the codebase is full of code like the originally exploitable one. At this point maybe one should use wrappers for all sorts of calculations. :D

jawavvaa 7 months ago

I've seen something like this in ChromeOS too, since both devices will use similar methodologies and technologies in their respective VMs. The attackers would glitch the VGA framebuffer, and the only way you can tell was your screen would show random garbage briefly. As the attack escalated, the glitches got worse until either the computer crashed or they accomplished their exfiltration. I think ChromeOS patched it a while ago, so I don't see it anymore. Attack vector was something like Chrome Browser -> (?) -> Framebuffer -> [Cross VMs to host].

snvzz 7 months ago

This would not have been possible with seL4 virtualization.

There, VM exceptions are turned into messages for VMM, which is unprivileged, and has capabilities that do not exceed those of the VM itself.

smegger001 7 months ago

Would this work with a headless VM only accessed via SSH? I naively perhaps assume it would be safe as its not using a virtual vga device but perhaps the machines still has the vga device present in the virtual environment it just not being used by the user but still vulnerable?

also is this specific to any particular host operating system or all versions of virtualbox?

  • fulafel 7 months ago

    Despite the title, the vulnerable function name (vmsvga3dSurfaceMipBufferSize) tells it's in the VMSVGA virtual 3D graphics device, not basic VGA hardware needed for normal bootup console stuff.

  • bobmcnamara 7 months ago

    Availability of the VM device is up to the host's configuration for that VM. You can remove it, but there's one display present by default - don't recall which

  • rjsw 7 months ago

    If the kernel in the VM has the DRM code loaded into it, maybe as a module, then I think you would be able to trigger this bug.

  • orev 7 months ago

    All* PCs require a VGA console to boot. Maybe there’s some special type that doesn’t, but it would be extremely rare. When running headless it’s just hiding the console window, but the device still exists on the machine.

    • da768 7 months ago

      Network appliances (Lanner, Netgate, Axiomtek, PC Engines, etc) typically only have a serial console and no GPU hardware at all. Same applies for any linux VMs, you can remove VGA devices and keep a serial port in the config

    • Retr0id 7 months ago

      Linux has no problem booting without a VGA device present

      • _flux 7 months ago

        That's true, but there may be some some desktop BIOSes that will fail to boot without a display adapter—though I've had good luck on that on the few hosts I've made headless servers.

        • Retr0id 7 months ago

          Fortunately the BIOSes shipping in hypervisors tend to be more sane, and QEMU for example can direct-boot a linux kernel without even needing to emulate a BIOS/EFI first.

vardump 7 months ago

VirtualBox just crashes all the time anyways. At least the few newest versions keep crashing when running Ubuntu 22.04 or 24.04 LTS.

  • noosphr 7 months ago

    This is a problem with Ubuntu and not VirtualBox. I spend a few hours today fighting with 24.04.02 in libvirt only to realize that they are using some fancy new GUI library for the installer which crashes on all VMs: https://www.dell.com/support/kbdoc/en-us/000123893/manual-no...

    Mandatory Ubuntu considered harmful.

    If only NVidia considered Debian a first class distribution so I never had to use Ubuntu again.

  • Neywiny 7 months ago

    I updated to the latest (7.1.8?) and that fixed the inability to use 3d acceleration. But yes I've found they have a terrible release "process" that seems to not include testing. I tried switching to VMWare but A) broadcom makes it difficult to download B) since a recent kernel/driver update on my host, even a fresh Windows guest locks up in boot (can't get through install).

    Might try going back to qemu. VMWare had the best performance by far, though, which was great for windows only 3d model software. When with 3d acceleration Virtualbox is so sluggish for me.

    • alyandon 7 months ago

        they have a terrible release "process" that seems to not include testing
      
      I wouldn't say they have no testing process at all but it seems to me that they lack discipline when it comes to building releases and testing. I've seen releases that had debug-by-logging type code left in spamming the VM logs as well as breakage in what most would consider very common host + guest combinations.

      It's a shame that Oracle doesn't seem to care much about the overall quality of that product. I guess we should be happy Oracle cares enough to still develop it. :-/

      Edit: And right now - VirtualBox is still not offering v7.1.8 inside the GUI app and there is no mention of this CVE in the 7.1.8 change logs.

      • Neywiny 7 months ago

        Yeah when I checked for updates in the GUI it found nothing. Had to download manually. Though actually I didn't update the extension pack. Doubt it'd help but I should check.

    • vardump 7 months ago

      I’m using the latest, same version. Just a horrible experience overall. Whole VirtualBox hypervisor crashes regularly.

      VMWare was the gold standard before, but so hopeless now.

      I wish Parallels released something for Windows. Their Mac offerings are great.

      Maybe I should try QEMU on the desktop as well.

    • immibis 7 months ago

      Broadcom is one of those companies that gets you hooked and then sues you for a lot of money.

      ... So is Oracle, though.

  • fulafel 7 months ago

    It was crashy years ago as well. In the host kernel driver part, which is the worst place. And half of open source dev projects had Vagrant setups needing VirtualBox. Even though Docker has its problems, it's not half as bad.

  • mhitza 7 months ago

    In my recent experience Ubuntu is pretty buggy, I think the distro should also be part of the consideration.

    Using Ubuntu on a daily machine for 6 months, after 15 years of Fedora, that's how I would describe my entire experience. Buggy.

    • simion314 7 months ago

      No such issues with Kubuntu, so maybe is the GNOME ecosystem or maybe so unfortunate kernel+drivers, GPU combo.

      • mhitza 7 months ago

        I'm using KDE as well (after giving GNOME another shot for a week, which had even more issues), though I installed KDE in parallel, so there's always the chance that some GNOME residue is causing those issues.

        • simion314 7 months ago

          What kind of issues ? is X or Wayland crashing and you are losing your work? I am still on X11 , in rare cases X crashes and is probably the video card/nvidia driver issues since all crashes happened when I had some 3d GPU stuff happening.

  • oguz-ismail 7 months ago

    works on my machine

Thaxll 7 months ago

There is no reason to use virtual box on Windows nowdays, Hyper-v and vmware are free for personnal use and are much much better than VirtualBox.

https://blogs.vmware.com/workstation/2024/05/vmware-workstat...

  • AshamedCaptain 7 months ago

    VirtualBox is the only one of the 3 mentioned is still both free as in beer (even for commercial use*) as well as free as in freedom (GPLv3).

    * Unless you use the Oracle plugin, but you really shouldn't, because most features from it have been moved to the GPL base.

    The only other really free alternative is Qemu.

    • TMWNN 7 months ago

      > * Unless you use the Oracle plugin, but you really shouldn't, because most features from it have been moved to the GPL base.

      Oh? I moved to KVM via UnRAID, but not because of any particular complaint with VirtualBox or the Oracle plugin. But then, I only used the plugin for the RDP feature. Has that been moved into the main codebase?

      • AshamedCaptain 7 months ago

        Not RDP, but like encryption, it's the only other feature I can think of which remains on the extpack. IMHO they are all enterprisey "mark a checkbox" level features that should be irrelevant for even actual enterprise users.

        Why do you have to use RDP anyway? It gives almost zero advantages over VNC here since all the output is going to be raster.

        • TMWNN 7 months ago

          >Why do you have to use RDP anyway? It gives almost zero advantages over VNC here since all the output is going to be raster.

          No preference for either protocol; I just used RDP because that was the most convenient with VirtualBox and the plugin. (I think (?) I tried VNC and couldn't get it to work.) I use VNC now with UnRAID's KVM, but probably would have stuck with RDP were it supported.

    • notpushkin 7 months ago

      > most features from it have been moved to the GPL base

      Wow, that’s nice to hear! Installing the ext pack used to be an almost mandatory step for me.

  • VladVladikoff 7 months ago

    Except virtual box is open source and probably the whole reason these vulnerabilities are found. I’m sure similar vulnerabilities could exist in VMware but are much harder to find due to being closed source.

  • ekianjo 7 months ago

    Your post is obsolete. VMware workstation is now free for all users, even commercial ones.

    https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-...

  • hk1337 7 months ago

    That and most development virtual box use has moved to using Docker which has caused things like Hyper-V on Windows and macOS to create better alternatives for Docker to use and Linux doesn't need the VM.

  • sinuhe69 7 months ago

    Nope. Hyper-V only works on pro and higher versions of Windows. VMWare is not free. I can run VirtualBox on demand (as a portable app) and that simplifies things immensely. VirtualBox can also work with all different kinds of virtual hard disks, can archive and import archives from different versions without any problem and that make it a versatile and useful tool. There are also tons of information about VirtualBox from the community.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection