Headline
CVE-2023-32684: Release v0.16.0 · lima-vm/lima
Lima launches Linux virtual machines, typically on macOS, for running containerd. Prior to version 0.16.0, a virtual machine instance with a malicious disk image could read a single file on the host filesystem, even when no filesystem is mounted from the host. The official templates of Lima and the well-known third party products (Colima, Rancher Desktop, and Finch) are unlikely to be affected by this issue. To exploit this issue, the attacker has to embed the target file path (an absolute or a relative path from the instance directory) in a malicious disk image, as the qcow2 (or vmdk) backing file path string. As Lima refuses to run as the root, it is practically impossible for the attacker to read the entire host disk via /dev/rdiskN
. Also, practically, the attacker cannot read at least the first 512 bytes (MBR) of the target file. The issue has been patched in Lima in version 0.16.0 by prohibiting using a backing file path in the VM base image.
This release adds an experimental support for the user-v2 network driver: limactl start template://experimental/net-user-v2.
The user-v2 network driver enables VM-to-VM networking without the root privilege on the host.
This should be useful for simulating multi-node Kubernetes clusters on a laptop.
This release also fixes a relatively minor vulnerability CVE-2023-32684.
This vulnerability is very unlikely to be exploitable as long as you are using the official templates of Lima.
Changes
- limactl CLI:
- (Experimental) Add limactl snapshot (apply|create|delete|list) commands (#1054, thanks to @afbjorklund)
- Escape only the value of env variables in limactl shell (#1501, thanks to @sam-berning)
- YAML:
- Add “dependency” provisioning mode (#1105, thanks to @pendo324)
- (Experimental) Add .audio.device (#1527, #1532, #1561, #1589, thanks to @afbjorklund @balajiv113)
- Documents:
- Install man pages (#1521, thanks to @afbjorklund)
- Network:
- (Experimental) Add user-v2 network driver to enable VM-to-VM networking without root (#1383, thanks to @balajiv113)
- nerdctl:
- Update from v1.3.1 to v1.4.0 (#1559)
- Templates:
- AlmaLinux: update to 9.2 (#1550)
- Alpine: update to 3.18 and fix Rosetta support (#1560, #1580, thanks to @jandubois)
- Arch Linux: update to 20230515.150700 (#1550)
- Fedora: update to 38 (#1502, thanks to @cpach)
- Nomad: update to v0.9.4 (#1552)
- Rocky Linux: update to 9.2 and 8.8 (#1550, #1591)
- Ubuntu: update to 23.04 (#1550)
- Misc:
- Improve disk efficiency (#1411) for caches (#1544)
Full changes: https://github.com/lima-vm/lima/milestone/34?closed=1
Thanks to @afbjorklund @balajiv113 @bumpsoo063 @cpach @jandubois @pendo324 @sam-berning
Usage
[macOS]$ limactl start … INFO[0029] READY. Run `lima` to open the shell.
[macOS]$ lima uname Linux
The binaries were built automatically on GitHub Actions.
The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/5118006806
The sha256sum of the SHA256SUMS file itself is 2062c42688128dca55331fc1a8f4841cbf41ed9dd11867d48decdf6880afde87 .
Related news
> **Note** > > The official templates of Lima, and the well-known third party products (Colima, Rancher Desktop, and Finch) are *unlikely* to be affected by this issue. ### Impact A virtual machine instance with a malicious disk image could read a single file on the host filesystem, even when no filesystem is mounted from the host. To exploit this issue, the attacker has to embed the target file path (an absolute or a relative path from the instance directory) in a malicious disk image, as the [qcow2 (or vmdk) backing file path string](https://gitlab.com/qemu-project/qemu/-/blob/v8.0.0/docs/interop/qcow2.txt#L23-L34). As Lima refuses to run as the root, it is practically impossible for the attacker to read the entire host disk via `/dev/rdiskN`. Also, practically, the attacker cannot read at least the first 512 bytes (MBR) of the target file. ### Patches Patched in Lima v0.16.0, by prohibiting using a backing file path in the VM base image. ### Workarounds Do not use an untrusted d...