Repository navigation
2.0.1
This release ships fixes linked to SEV-SNP support as well as an update of the runtimes for V-PROGRAM support.
⚠️ Upgrade notes
- The Rust supervisor daemon and VM controller are now the default (#1171). The 2.0.0 packages ran the Python implementation unless
ALEPH_VM_SUPERVISOR_IMPL=rustwas set in/etc/aleph-vm/supervisor.env(the 2.0.0 release notes were wrong on this point: #1171 merged after the 2.0.0 tag was cut). Upgrading keeps your existingsupervisor.env, so a node that never set the flag switches to the Rust daemon and controller on this upgrade, and both services restart. Running QEMU and confidential VMs are re-adopted by the new daemon. If you would rather not switch implementations with VMs running, setALEPH_VM_SUPERVISOR_IMPL=pythonbefore installing the package and switch torustafter cycling your VMs. - Rollback to the Python implementation is
ALEPH_VM_SUPERVISOR_IMPL=pythoninsupervisor.envfollowed by a restart ofaleph-vm-supervisorandaleph-vm-agent. The Python supervisor does not run SEV-SNP workloads (V-PROGRAMs and SNP instances) and now rejects them explicitly (#1180). Downgrading to 1.x is not supported. - SEV-SNP requires QEMU >= 9.1, the first release with the
sev-snp-guestobject (#1179). Of the packaged targets, Debian 13 and Ubuntu 26.04 ship one. Debian 12 (QEMU 7.2), Ubuntu 22.04 (6.2) and Ubuntu 24.04 (8.2) do not: they serve plain SEV/SEV-ES instances but cannot launch SNP guests, and the node no longer advertises SNP on them. Upgrade QEMU by recompiling it or by moving to Debian 13 or Ubuntu 26.04; a deb for Ubuntu 26.04 is shipped for this purpose.kvm_amd nested=0is fine since this release (#1178). - V-PROGRAM publishers: the measured guest kernel changed (#1184), so launch measurements moved. Runtime bundles built before this release do not boot under SEV-SNP: they fail the new 90-second attestation gate and are torn down. Use the runtimes published for 2.0.1.
- Coming from 1.15: read the 2.0.0 breaking changes first (Firecracker-based instances are not re-adopted, legacy
X-Auth-Signaturescheduler authentication is removed).
How to upgrade
Download and install the package for your OS. The package restarts aleph-vm-supervisor and aleph-vm-agent itself; no manual restart is needed.
On Ubuntu 26.04 (Resolute Raccoon), new in this release and recommended for SEV-SNP hosts:
sudo rm -f /opt/aleph-vm.ubuntu-26.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/2.0.1/aleph-vm.ubuntu-26.04.deb
sudo apt install /opt/aleph-vm.ubuntu-26.04.debOn Debian 13 (Trixie):
rm -f /opt/aleph-vm.debian-13.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/2.0.1/aleph-vm.debian-13.deb
apt install /opt/aleph-vm.debian-13.debOn Debian 12 (Bookworm):
rm -f /opt/aleph-vm.debian-12.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/2.0.1/aleph-vm.debian-12.deb
apt install /opt/aleph-vm.debian-12.debOn Ubuntu 24.04 (Noble Numbat):
sudo rm -f /opt/aleph-vm.ubuntu-24.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/2.0.1/aleph-vm.ubuntu-24.04.deb
sudo apt install /opt/aleph-vm.ubuntu-24.04.debOn Ubuntu 22.04 (Jammy Jellyfish):
sudo rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/2.0.1/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.debThe crn_upgrade.sh helper from the 2.0.0 notes does not yet recognise Debian 13 or Ubuntu 26.04; use the commands above on those systems.
Verify
systemctl is-active aleph-vm-supervisor aleph-vm-agentOn SEV-SNP hosts, the agent logs one line at startup: INFO with the advertised CPU models, or a WARNING naming exactly why confidential launches are disabled. The same reason is exposed by the node itself:
journalctl -u aleph-vm-agent -n 100 | grep -i snp
curl -s http://localhost:4020/about/capability | jq '.tee_unavailable_reason' # null on a healthy SNP hostIf SNP is unavailable because of the QEMU version, upgrading QEMU heals the advertisement within 60 seconds; no restart is needed.
🔐 SEV-SNP fixes
- The minimal measured guest kernel now boots under SEV-SNP (#1184). The whitelist kernel introduced in #1169 hung before its first console line as an SNP guest (fine as a regular guest, which is what boot-smoke exercises): with
EXPERT=y,allnoconfiganswers the promptedX86_PATsymbol with 'no'. Empirically bisected on EPYC hardware;CONFIG_X86_PAT=y+CONFIG_MTRR=yis the minimal fix. Golden measurements re-seeded. - SNP launches fail loudly instead of wedging invisibly (#1180): V-PROGRAM and SNP-instance creates now gate on the guest's RA-TLS attestation endpoint accepting TCP within 90 seconds, else the VM is torn down and the error surfaces; the Python supervisor rejects SNP specs outright, naming the
IMPL=rustswitch. - Truthful SNP capability advertisement (#1179): the CRN only advertises
sev_snpwhen QEMU actually supportssev-snp-guest(qom-list-types gate), exposes the reason via/aboutwhen it cannot, logs an operator notice at startup, and re-probes every 60s so a live QEMU upgrade heals the node without a restart. - The SNP vCPU probe no longer requires nested virtualization (#1178): hosts with
nested=0advertise SNP again.
🧾 V-PROGRAM verified data volumes (#1176)
Read-only data volumes (model weights, datasets) join the measured stack:
aleph vprogram create --volume data.ext4dm-verity-formats each image, publishes data + hash tree, and pins the root hashes on the message; the guest init verity-opens and mounts them read-only at/volumes/<i>.- Compose workloads bind them into services with a strict
/volumes/<i>[/subpath]:<target>:rosubset (aleph-rs 0.18.0). VerificationResultnow carries the full launch-register map instead of a scalar measurement (#1175).
📦 Packaging and dependencies
- Debs are built for Ubuntu 26.04 (resolute) (#1181).
aleph-messageis pinned to the released 1.3.1 (#1183): strict V-PROGRAM scalar validation, serde parity with the Rust SDK and pyaleph 0.11.2.- The guest kernel build went from a distro config to a reviewed whitelist fragment (#1169), cutting golden-measurement CI from ~2h20m to minutes.
🛠 Hardening and fixes
- Guest inits fail closed across all flavors, and the attestation nonce endpoint is capped (#1168 series).
- The attest agent never follows upstream redirects and keeps error detail out of responses (#1168 series).
- Hugepage pools are counted as available memory in
/about/usage/system, so hugepage-reserving nodes are no longer starved by the scheduler (#1182).
What's Changed
- Post-2.0 review follow-ups: drop aleph-attest-cli, harden the attest-agent, fail-closed init by @odesenfans in #1168
- feat(packaging)!: Rust supervisor daemon and controller by default by @odesenfans in #1171
- nix: whitelist guest kernel config (golden CI 2h20m -> minutes) by @odesenfans in #1169
- feat: V-PROGRAM verified data volumes (host + guest) by @odesenfans in #1176
- fix: SNP launches fail loudly instead of wedging invisibly by @odesenfans in #1180
- test(daemon): stop racing the live filesystem in the pooled-disk test by @odesenfans in #1177
- fix(agent): SNP vCPU probe no longer requires nested virtualization by @odesenfans in #1178
- feat(tee)!: VerificationResult carries registers, not a scalar measurement by @odesenfans in #1175
- feat(packaging): build a deb for Ubuntu 26.04 (resolute) by @odesenfans in #1181
- feat(agent): truthful SNP capability advertisement (sev-snp-guest gate, operator surfacing) by @odesenfans in #1179
- fix(agent): count free hugepages as available memory in /about/usage/system by @odesenfans in #1182
- fix(nix): SEV-SNP guests need X86_PAT; the minimal kernel hung before console by @odesenfans in #1184
- build: pin released aleph-message 1.3.1 instead of the git ref by @odesenfans in #1183
Full Changelog: 2.0.0...2.0.1