Repository navigation
fix(bundle): Take cloud-hypervisor v54.0 and the urunc that names the disk image type - #23
Merged
Merged
Conversation
… disk image type cloud-hypervisor v50.0 offers the virtio-net offloads by default and writes a guest's virtio-net header to the tap unchanged. That is the guest side of PwnEscape, the Linux host-kernel bug in deferred checksum completion (fixed upstream in 6785011f8b16). v54.0 turns the offloads off by default and drops a transmit chain whose header asks for an offload the guest did not negotiate. Take v54.0 from monitors-build v0.1.1. Its cloud-hypervisor matches the upstream v54.0 static binaries byte for byte on both arches. virtiofsd and firecracker are unchanged. solo5 is still v0.12.1 but was rebuilt. monitors-build changed its release naming. A release is now tagged vX.Y.Z, and its per-arch tarball is <fingerprint>-<arch>.tar.gz. The layout inside is unchanged. The release publishes no checksums, so pin each tarball by sha256, the way cosign is pinned. v54.0 also removed disk image type autodetection and refuses a --disk without image_type. Pin urunc at 0b1ef07, the head of feat/unchanged_containers-exec-fixes, now rebased onto urunc v0.8.1. It passes image_type=raw on every --disk (urunc-dev/urunc#1117). The two pins go together: either one alone breaks a block-device rootfs on cloud-hypervisor. Signed-off-by: Panagiotis Moustafellos <pmoust@nofire.ai> [ananos: take cloud-hypervisor from monitors-build v0.1.1 instead of its own release; pin urunc at 0b1ef07 for image_type=raw] Signed-off-by: Anastassios Nanos <ananos@nofire.ai>
ananos
force-pushed
the
fix/cloud-hypervisor-v54
branch
from
October 16, 2026 12:55
b50ac3b to
1fe799e
Compare
Contributor
|
@pmoust I took this over to keep it to one PR. monitors-build v0.1.1 now carries cloud-hypervisor v54.0, byte-identical to the upstream static binaries, so the bundle takes it from there again. The urunc pin moves to 0b1ef07 in the same commit, for |
cmainas
approved these changes
Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patch moves the bundle to cloud-hypervisor v54.0, and pins urunc at the commit v54.0 needs.
cloud-hypervisor v50.0 offers the virtio-net offloads by default and writes a guest's virtio-net header to the tap unchanged. That is the guest side of PwnEscape (https://pwn.ai/blog/pwnescape), the Linux host-kernel bug in deferred checksum completion (upstream fix
6785011f8b16). v54.0 turnsoffload_csum,offload_tsoandoffload_ufooff by default, and drops a transmit chain whose header asks for an offload the guest did not negotiate. So a Linux host running the bundle is no longer exposed through it, even before its kernel carries the fix.Changes
cloud-hypervisorbinaries match the upstream v54.0 static binaries byte for byte on both arches. virtiofsd and firecracker are unchanged. solo5 is still v0.12.1, rebuilt.vX.Y.Z(MONITORS_RELEASE), and the per-arch tarball is<fingerprint>-<arch>.tar.gz. The layout inside is the same (urunc/bin/*). monitors-build publishes no checksums, so each tarball is pinned by sha256, the way cosign is.0b1ef07, the head offeat/unchanged_containers-exec-fixes, now rebased onto urunc v0.8.1. It passesimage_type=rawon every--disk(fix(cloud-hypervisor): Name the disk image type urunc-dev/urunc#1117). v54.0 removed image type autodetection and refuses a--diskwithout it.The two pins go together, which is why this is one commit. urunc alone breaks a block-device rootfs on v50.0, which does not know
image_type. v54.0 alone refuses the old urunc's--disk.What changes for guests
--diskto cloud-hypervisor. urunc prefers virtiofs for a container boot, even on devmapper. Theimage_typechange matters for urunc-native images on devmapper.Tested (amd64, nofire-cerno)
--cpus, isolated network,claude --version. All pass. Cold boot is ~0.95 s (1.8-9 s on rc15).busybox-cloud-hypervisor-linux-raw. rc16 boots. rc16's urunc on v54.0 fails withImageTypeRequired. This bundle boots with--disk ...,id=rootfs,image_type=raw.monitors hash mismatch.sh -nandshellcheck -S warningare clean.Not tested: arm64. Its tarball pin is computed from the published release asset.
Known and not new (rc16 behaves the same): the claude profile on
CONTAINERD_SNAPSHOTTER=devmapperfails with "could not read the sandbox's mount table", and a guest's exit status still comes back as 1.Release sequence
RUNTIME_VERSIONin brig'sinstall.shto that tag.