Upgrade cloud-hypervisor to v50.1 (CVE-2026-27211)#200
Upgrade cloud-hypervisor to v50.1 (CVE-2026-27211)#200ulziibay-kernel wants to merge 3 commits intomainfrom
Conversation
Fixes GHSA-jmr4-g2hv-mjj6 (CVE-2026-27211): VMM host file exfiltration via malicious QCOW2 headers. Affects versions 34.0 through 50.0; fixed in 50.1. - Drop embedded v48.0 and v49.0 binaries; embed v50.1 only - Update Makefile downloads, spec source, and ensure-ch-binaries check to v50.1 - Update SupportedVersions, ParseVersion, and the default GetVersion() returned by the cloud-hypervisor Starter - Update tests and docs to reference v50.1 Cloud Hypervisor API remains at v0.3.0 (new /vm.resize-disk endpoint and optional `nested` field are additive, no regen needed unless the new surface is used). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Firetiger deploy monitoring skipped This PR didn't match the auto-monitor filter configured on your GitHub connection:
Reason: PR updates Cloud Hypervisor binaries and related build tooling, but does not modify API endpoints (packages/api/cmd/api/) or Temporal workflows (packages/api/lib/temporal) that the filter targets. To monitor this PR anyway, reply with |
CH v50.1 prevents sector-zero writes on autodetected raw images as part of the CVE-2026-27211 fix. Without explicit image_type, the overlay disk (vdb) fails with I/O errors because CH treats it as a potential QCOW2 spoof: I/O error, dev vdb, sector 0 op 0x1:(WRITE) EXT4-fs (vdb): mount failed FATAL: dropping to shell for debugging Fix: 1. Regenerate lib/vmm/vmm.go from the v50.1 OpenAPI spec to pick up the new image_type and backing_files fields in DiskConfig 2. Fix malformed enum in the upstream spec (type: enum [...] -> type: string with enum list) matching cloud-hypervisor PR #7734 3. Set ImageType: Raw on all disk configs in ToVMConfig so CH skips format autodetection and allows sector-zero writes on raw images Made-with: Cursor
Changes between v49.0 and v50.1 -- reviewer notesPushed a fix for the CI failure (ceb572d). Root cause: v50.1 prevents sector-zero writes on autodetected raw images (part of CVE fix). Fix: regenerate VMM client from v50.1 spec + set Here's a full breakdown of potentially breaking changes between v49.0 (what we run today) and v50.1: Breaking / High Impact
Medium Impact
Low Impact / Positive
Already handled from v49.0
Key risk: Snapshot compatibilityThe biggest operational risk is snapshot restore. Instances snapshotted on v48/v49 won't restore on v50.1. Options:
I'd recommend option 1 (drain) for production rollout. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ceb572d. Configure here.
Made-with: Cursor

Summary
Upgrades the embedded Cloud Hypervisor binaries from v48.0/v49.0 to v50.1.
SupportedVersionsis now{V50_1};GetVersion()in the cloud-hypervisor starter returnsv50.1.download-ch-binaries,download-ch-spec,ensure-ch-binaries),ParseVersion, tests, and README docs.Compatibility notes for reviewer
lib/system/README.mdnotes that snapshot restore requires an exact CH version match. Dropping v48.0/v49.0 means existing standby instances snapshotted on those versions can no longer be restored by this binary. If a transition window is needed, we could keep v49.0 embedded temporarily behind a deprecation marker — happy to switch to that approach.0.3.0at tag v50.1. The v50.1 spec adds/vm.resize-diskand an optionalnestedfield; both are additive so I did not regeneratelib/vmm/vmm.go. Runmake download-ch-spec && make generate-vmm-clientif we want the new surface.Test plan
make download-ch-binariespulls v50.1 static binaries (x86_64 + aarch64)cloud-hypervisor v50.1go build ./lib/vmm/... ./lib/hypervisor/cloudhypervisor/...go vetclean on changed packagesgo test ./lib/vmm/... -run 'TestIsVersionSupported|TestExtractBinary|TestParseVersion'passesgo test ./lib/vmm/...(requires KVM; run in CI / on a KVM-capable host)🤖 Generated with Claude Code
Note
Medium Risk
Upgrades the embedded hypervisor binary and drops older supported versions, which can break standby snapshot restore for instances created on prior Cloud Hypervisor versions and may expose subtle runtime behavior changes.
Overview
Updates embedded Cloud Hypervisor from
v48.0/v49.0tov50.1(including Makefile download/ensure targets and the spec fetch URL), and makesv50.1the soleSupportedVersions/default returned by the Cloud Hypervisor starter.Refreshes the VMM client surface to match the newer spec (e.g., disk
image_type, CPUnested, NIC offload flags, and a new/vm.resize-diskrequest/response), and updates parsing/tests/docs to expectv50.1throughout.Reviewed by Cursor Bugbot for commit 6cb1e07. Bugbot is set up for automated code reviews on this repo. Configure here.