From 94a2f6af1e51129441116e88fc3313c8b713e33d Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Fri, 16 Oct 2026 09:27:33 -0700 Subject: [PATCH 1/3] os: stop the confidential guest acting on host-controlled GPT and credentials systemd-gpt-auto-generator reads the root disk's GPT and mounts or activates the partitions it finds. The partition table is host-controlled and outside the TDX/SEV measurements, so a partition the host appends (swap, /var, /home, ...) is acted on inside the guest. Reproduced on mkosi-os-v0.6.1: a host-appended swap partition is activated ~2s into boot under the generator's "Swap Partition" unit. Disable it with systemd.gpt_auto=0 on the measured kernel command line (parsed identically by every systemd since v252, unlike image_policy=) and remove the generator binary from the prod image, mirroring the deletion the Yocto backend did and the mkosi rewrite dropped. Reviewing the same class of mechanism, also set systemd.import_credentials=no so PID1 stops importing system credentials from SMBIOS and qemu fw_cfg (both host-controlled and unmeasured; consumed by sysusers, tmpfiles, udev rules, networkd, ...), and remove the hibernate-resume, bless-boot, system-update, sysv and rc-local generators, which are unreachable in this image or act on host-influenced input. Refs: GHSA-c79w-3x5w-gmm5 Signed-off-by: Kevin Wang --- os/image/kernel-cmdline.sh | 15 +++++++++++++++ os/mkosi/mkosi.profiles/prod/mkosi.conf | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/os/image/kernel-cmdline.sh b/os/image/kernel-cmdline.sh index c900899be..bedbf2722 100644 --- a/os/image/kernel-cmdline.sh +++ b/os/image/kernel-cmdline.sh @@ -30,6 +30,20 @@ # Intel's confidential-computing guest hardening names early PCI code as # something to disable, so it stays off. +# `systemd.gpt_auto=0` disables systemd-gpt-auto-generator, which reads the root +# disk's GPT and mounts or activates partitions found there. That table is +# host-controlled and unmeasured, so without this a partition the host appends +# (swap, /var, /home, ...) is acted on inside the guest. The rootfs is located +# by PARTLABEL and verified by dm-verity in the initramfs, so nothing we rely on +# depends on the generator. Every systemd since v252 parses the flag the same +# way, unlike `systemd.image_policy=` which older versions ignore and v254/v255 +# mishandle. +# +# `systemd.import_credentials=no` stops PID1 importing system credentials from +# SMBIOS and qemu fw_cfg, both host-controlled and unmeasured. Many units +# consume such credentials (sysusers, tmpfiles, udev rules, networkd, ...), so +# this closes that injection path at the source instead of masking each consumer. + # Emit the guest kernel command line. # $1 dm-verity root hash # $2 rootfs data size in bytes @@ -39,5 +53,6 @@ dstack_kernel_cmdline() { echo "console=ttyS0 init=/init panic=1 net.ifnames=0 biosdevname=0" \ "mce=off oops=panic pci=noearly random.trust_cpu=y" \ "random.trust_bootloader=n tsc=reliable no-kvmclock" \ + "systemd.gpt_auto=0 systemd.import_credentials=no" \ "dstack.rootfs_hash=$root_hash dstack.rootfs_size=$data_size" } diff --git a/os/mkosi/mkosi.profiles/prod/mkosi.conf b/os/mkosi/mkosi.profiles/prod/mkosi.conf index a571f6a71..2b163409d 100644 --- a/os/mkosi/mkosi.profiles/prod/mkosi.conf +++ b/os/mkosi/mkosi.profiles/prod/mkosi.conf @@ -46,6 +46,24 @@ RemoveFiles= /usr/lib/systemd/system/systemd-logind.service /usr/lib/systemd/system/multi-user.target.wants/systemd-logind.service /usr/lib/systemd/logind.conf.d + # Generators that act on host-controlled, unmeasured input or are + # simply unreachable in this image. systemd.gpt_auto=0 on the measured + # command line already disables gpt-auto; removing these binaries is + # defence in depth and mirrors meta-dstack's systemd_%.bbappend, whose + # deletion of gpt-auto the mkosi rewrite had dropped. + # + # - gpt-auto: mounts/activates partitions from the host-controlled GPT. + # - hibernate-resume: reads resume= and the EFI HibernateLocation; the + # kernel drops CONFIG_PM so hibernation cannot happen anyway. + # - bless-boot / system-update: boot-assessment and offline-update + # handshakes this image never performs. + # - sysv / rc-local: no SysV init scripts or /etc/rc.local exist. + /usr/lib/systemd/system-generators/systemd-gpt-auto-generator + /usr/lib/systemd/system-generators/systemd-hibernate-resume-generator + /usr/lib/systemd/system-generators/systemd-bless-boot-generator + /usr/lib/systemd/system-generators/systemd-system-update-generator + /usr/lib/systemd/system-generators/systemd-sysv-generator + /usr/lib/systemd/system-generators/systemd-rc-local-generator # Suspend/hibernate units: the kernel drops CONFIG_PM entirely, so # these can only produce failed jobs. /usr/lib/systemd/system/suspend.target From 6615c1073d753ad933c59c894751a91177d2cb1e Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Fri, 16 Oct 2026 19:55:26 -0700 Subject: [PATCH 2/3] os/mkosi: pin prod generators and assert the hardening the fix relies on The Yocto parity spec was derived from the image recipe's package list, so it checked that required files exist but never that what Yocto stripped stays stripped: deletions in bbappends and PACKAGECONFIG removals were not covered, which is how gpt-auto survived the mkosi rewrite. The only inverse check was a hand-kept denylist that grew after each incident. - check-parity.py pins the exact set of system generators prod may ship, so a package upgrade that adds one fails the build. - acceptance.sh asserts the measured command line keeps systemd.gpt_auto=0 and systemd.import_credentials=no. - The kernel fragment states DMI_SYSFS, FW_CFG_SYSFS and PSTORE off, so check-kernel-config.sh guards them like the other hardening symbols; all three are already off, so the built kernel is unchanged. - Prod also drops the ssh generator (no sshd in prod) and the hibernate resume/clear binary and units the removed generator left behind. Signed-off-by: Kevin Wang --- os/mkosi/components/kernel/kernel.config | 7 +++++++ os/mkosi/mkosi.profiles/prod/mkosi.conf | 11 ++++++++++- os/mkosi/parity.json | 8 +++++++- os/mkosi/tests/acceptance.sh | 9 +++++++++ os/mkosi/tests/check-parity.py | 17 +++++++++++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/os/mkosi/components/kernel/kernel.config b/os/mkosi/components/kernel/kernel.config index f21a9ea2e..04ad9425a 100644 --- a/os/mkosi/components/kernel/kernel.config +++ b/os/mkosi/components/kernel/kernel.config @@ -214,6 +214,13 @@ CONFIG_SUSPEND=n CONFIG_PM=n CONFIG_PM_SLEEP=n +# SMBIOS tables and qemu fw_cfg blobs are host-controlled and unmeasured; these +# expose them to userspace, where systemd imports them as system credentials. +# pstore restores records the firmware hands back from a previous boot. +CONFIG_DMI_SYSFS=n +CONFIG_FW_CFG_SYSFS=n +CONFIG_PSTORE=n + # Yocto dstack fragments and minimal guest-only hardware policy. CONFIG_9P_FS_POSIX_ACL=y CONFIG_SERIAL_8250_PCI=y diff --git a/os/mkosi/mkosi.profiles/prod/mkosi.conf b/os/mkosi/mkosi.profiles/prod/mkosi.conf index 2b163409d..799cf3e5b 100644 --- a/os/mkosi/mkosi.profiles/prod/mkosi.conf +++ b/os/mkosi/mkosi.profiles/prod/mkosi.conf @@ -57,13 +57,22 @@ RemoveFiles= # kernel drops CONFIG_PM so hibernation cannot happen anyway. # - bless-boot / system-update: boot-assessment and offline-update # handshakes this image never performs. - # - sysv / rc-local: no SysV init scripts or /etc/rc.local exist. + # - sysv / rc-local: every shipped SysV script has a native unit, and + # there is no /etc/rc.local. + # - ssh: binds sshd to AF_VSOCK, but prod ships no sshd. + # + # parity.json pins the generators prod may keep. /usr/lib/systemd/system-generators/systemd-gpt-auto-generator /usr/lib/systemd/system-generators/systemd-hibernate-resume-generator + /usr/lib/systemd/systemd-hibernate-resume + /usr/lib/systemd/system/systemd-hibernate-resume.service + /usr/lib/systemd/system/systemd-hibernate-clear.service + /usr/lib/systemd/system/sysinit.target.wants/systemd-hibernate-clear.service /usr/lib/systemd/system-generators/systemd-bless-boot-generator /usr/lib/systemd/system-generators/systemd-system-update-generator /usr/lib/systemd/system-generators/systemd-sysv-generator /usr/lib/systemd/system-generators/systemd-rc-local-generator + /usr/lib/systemd/system-generators/systemd-ssh-generator # Suspend/hibernate units: the kernel drops CONFIG_PM entirely, so # these can only produce failed jobs. /usr/lib/systemd/system/suspend.target diff --git a/os/mkosi/parity.json b/os/mkosi/parity.json index 2b2a627ef..77d9f8d45 100644 --- a/os/mkosi/parity.json +++ b/os/mkosi/parity.json @@ -166,12 +166,18 @@ "usr/bin/login", "usr/bin/loginctl", "usr/sbin/agetty", - "usr/lib/systemd/system-generators/systemd-getty-generator", "usr/lib/systemd/system/getty@.service", "usr/lib/systemd/system/serial-getty@.service", "usr/lib/systemd/system/debug-shell.service", "usr/lib/systemd/system/systemd-logind.service" ], + "prod_allowed_generators": [ + "systemd-debug-generator", + "systemd-fstab-generator", + "systemd-run-generator", + "systemd-tpm2-generator", + "zfs-mount-generator" + ], "required_ldconfig_entries": [ "libnvidia-ml.so.1", "libnvidia-container.so.1", diff --git a/os/mkosi/tests/acceptance.sh b/os/mkosi/tests/acceptance.sh index 0f34d11ce..96d919338 100755 --- a/os/mkosi/tests/acceptance.sh +++ b/os/mkosi/tests/acceptance.sh @@ -251,6 +251,15 @@ if grep -q 'random.trust_bootloader' "$D/scripts/make-release-artifacts.sh"; the echo 'kernel command line must not be restated outside kernel-cmdline.sh' >&2 exit 1 fi +# These keep the guest from acting on the host-controlled GPT and on host-supplied +# system credentials; they only protect anything while they stay measured. +cmdline=$(. "$D/../image/kernel-cmdline.sh" && dstack_kernel_cmdline hash size) +for flag in systemd.gpt_auto=0 systemd.import_credentials=no; do + if [[ " $cmdline " != *" $flag "* ]]; then + echo "kernel command line lacks $flag" >&2 + exit 1 + fi +done grep -q 'Archiving UKI image' "$D/../image/assemble.sh" grep -Fq "FLAVORS=\${FLAVORS:-prod}" "$D/build.sh" # A cache hit must never be able to answer the question repro-check asks. diff --git a/os/mkosi/tests/check-parity.py b/os/mkosi/tests/check-parity.py index ebfaab983..6c324ed26 100755 --- a/os/mkosi/tests/check-parity.py +++ b/os/mkosi/tests/check-parity.py @@ -75,6 +75,23 @@ def resolves_in_rootfs(root: str, path: str) -> bool: for path in spec.get("prod_forbidden_paths", []): if os.path.lexists(os.path.join(rootfs, path)): missing.append(f"prod contains forbidden path:/{path}") + # Generators run as root before any unit and act on whatever they find, so + # prod pins the exact set: a package upgrade that ships a new one fails the + # build instead of silently widening what the host can influence. + generators = { + os.path.basename(path) + for pattern in ( + "usr/lib/systemd/system-generators/*", + "usr/local/lib/systemd/system-generators/*", + "etc/systemd/system-generators/*", + ) + for path in glob.glob(os.path.join(rootfs, pattern)) + } + allowed = set(spec["prod_allowed_generators"]) + for name in sorted(generators - allowed): + missing.append(f"prod contains unexpected generator: {name}") + for name in sorted(allowed - generators): + missing.append(f"prod is missing allowed generator: {name}") for path, expected in spec.get("required_symlink_resolutions", {}).items(): # Which netfilter frontend the image programs is decided by a symlink, and # on this backend that symlink comes from the distribution's default rather From 0a210869d7fdbf29558738781070e62950818f6b Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Mon, 19 Oct 2026 08:04:09 -0700 Subject: [PATCH 3/3] chore(release): bump version to 0.6.2 Signed-off-by: Kevin Wang --- dstack/Cargo.lock | 114 +++++++++--------- dstack/Cargo.toml | 2 +- os/mkosi/mkosi.conf | 2 +- os/mkosi/versions.env | 2 +- .../meta-dstack/conf/distro/dstack.conf | 2 +- 5 files changed, 61 insertions(+), 61 deletions(-) diff --git a/dstack/Cargo.lock b/dstack/Cargo.lock index 31a97f389..bc08ab92b 100644 --- a/dstack/Cargo.lock +++ b/dstack/Cargo.lock @@ -801,7 +801,7 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cached-cell" -version = "0.6.1" +version = "0.6.2" dependencies = [ "tokio", ] @@ -820,7 +820,7 @@ dependencies = [ [[package]] name = "cc-eventlog" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "digest 0.10.7", @@ -840,7 +840,7 @@ dependencies = [ [[package]] name = "cert-client" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "dstack-guest-agent-rpc", @@ -860,7 +860,7 @@ dependencies = [ [[package]] name = "certbot" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "bon", @@ -888,7 +888,7 @@ dependencies = [ [[package]] name = "certbot-cli" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "certbot", @@ -1346,7 +1346,7 @@ dependencies = [ [[package]] name = "ct_monitor" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "clap", @@ -1820,7 +1820,7 @@ dependencies = [ [[package]] name = "dstack-api-auth" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "base64 0.22.1", @@ -1832,7 +1832,7 @@ dependencies = [ [[package]] name = "dstack-attest" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "aws-nitro-enclaves-nsm-api", @@ -1881,7 +1881,7 @@ dependencies = [ [[package]] name = "dstack-auth" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "clap", @@ -1892,14 +1892,14 @@ dependencies = [ [[package]] name = "dstack-build-info" -version = "0.6.1" +version = "0.6.2" dependencies = [ "git-version", ] [[package]] name = "dstack-cli" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "clap", @@ -1916,7 +1916,7 @@ dependencies = [ [[package]] name = "dstack-cli-core" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "dstack-types", @@ -1930,7 +1930,7 @@ dependencies = [ [[package]] name = "dstack-gateway" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "arc-swap", @@ -1999,7 +1999,7 @@ dependencies = [ [[package]] name = "dstack-gateway-rpc" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "parity-scale-codec", @@ -2012,7 +2012,7 @@ dependencies = [ [[package]] name = "dstack-guest-agent" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "base64 0.22.1", @@ -2068,7 +2068,7 @@ dependencies = [ [[package]] name = "dstack-guest-agent-rpc" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "hex", @@ -2084,7 +2084,7 @@ dependencies = [ [[package]] name = "dstack-guest-agent-simulator" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "cc-eventlog", @@ -2106,7 +2106,7 @@ dependencies = [ [[package]] name = "dstack-kms" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "cc-eventlog", @@ -2151,7 +2151,7 @@ dependencies = [ [[package]] name = "dstack-kms-rpc" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "fs-err", @@ -2165,7 +2165,7 @@ dependencies = [ [[package]] name = "dstack-mr" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "binrw", @@ -2205,7 +2205,7 @@ dependencies = [ [[package]] name = "dstack-netd-rpc" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "prost 0.13.5", @@ -2217,7 +2217,7 @@ dependencies = [ [[package]] name = "dstack-nvidia-attest-proxy" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "base64 0.22.1", @@ -2245,7 +2245,7 @@ dependencies = [ [[package]] name = "dstack-tee-simulator" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "aws-nitro-enclaves-nsm-api", @@ -2282,7 +2282,7 @@ dependencies = [ [[package]] name = "dstack-types" -version = "0.6.1" +version = "0.6.2" dependencies = [ "ciborium", "hex", @@ -2300,7 +2300,7 @@ dependencies = [ [[package]] name = "dstack-util" -version = "0.6.1" +version = "0.6.2" dependencies = [ "aes-gcm", "anyhow", @@ -2364,7 +2364,7 @@ dependencies = [ [[package]] name = "dstack-verifier" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "cc-eventlog", @@ -2400,7 +2400,7 @@ dependencies = [ [[package]] name = "dstack-vmm" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "base64 0.22.1", @@ -2463,7 +2463,7 @@ dependencies = [ [[package]] name = "dstack-vmm-rpc" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "parity-scale-codec", @@ -2476,7 +2476,7 @@ dependencies = [ [[package]] name = "dstack-volume" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "binrw", @@ -2497,7 +2497,7 @@ dependencies = [ [[package]] name = "dstackup" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "clap", @@ -3173,7 +3173,7 @@ dependencies = [ [[package]] name = "guest-api" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "http-client", @@ -3434,7 +3434,7 @@ dependencies = [ [[package]] name = "host-api" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "http-client", @@ -3480,7 +3480,7 @@ dependencies = [ [[package]] name = "http-client" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "http-body-util", @@ -3889,7 +3889,7 @@ checksum = "d8972d5be69940353d5347a1344cb375d9b457d6809b428b05bb1ca2fb9ce007" [[package]] name = "iohash" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "blake2", @@ -4124,7 +4124,7 @@ dependencies = [ [[package]] name = "key-provider-client" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "dstack-types", @@ -4270,7 +4270,7 @@ checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "load_config" -version = "0.6.1" +version = "0.6.2" dependencies = [ "figment", "rocket", @@ -4280,7 +4280,7 @@ dependencies = [ [[package]] name = "local-key-provider" -version = "0.6.1" +version = "0.6.2" dependencies = [ "blake2", "dcap-qvl", @@ -4342,7 +4342,7 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "lspci" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "insta", @@ -4512,7 +4512,7 @@ dependencies = [ [[package]] name = "mock-attestation" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "axum", @@ -4740,7 +4740,7 @@ dependencies = [ [[package]] name = "nsm-attest" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "aws-nitro-enclaves-nsm-api", @@ -4752,7 +4752,7 @@ dependencies = [ [[package]] name = "nsm-qvl" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "ciborium", @@ -4934,7 +4934,7 @@ dependencies = [ [[package]] name = "nvattest" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "serde", @@ -5418,7 +5418,7 @@ dependencies = [ [[package]] name = "pki-fetch" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "pem", @@ -5844,7 +5844,7 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "ra-rpc" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "bon", @@ -5866,7 +5866,7 @@ dependencies = [ [[package]] name = "ra-tls" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "bon", @@ -6371,7 +6371,7 @@ dependencies = [ [[package]] name = "rocket-vsock-listener" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "derive_more 2.1.1", @@ -6951,7 +6951,7 @@ dependencies = [ [[package]] name = "serde-duration" -version = "0.6.1" +version = "0.6.2" dependencies = [ "serde", "serde_json", @@ -7173,7 +7173,7 @@ dependencies = [ [[package]] name = "sev-snp-attest" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "fs-err", @@ -7184,7 +7184,7 @@ dependencies = [ [[package]] name = "sev-snp-qvl" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "hex", @@ -7363,7 +7363,7 @@ checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "size-parser" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "serde", @@ -7532,7 +7532,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "supervisor" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "bon", @@ -7555,7 +7555,7 @@ dependencies = [ [[package]] name = "supervisor-client" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "clap", @@ -7708,7 +7708,7 @@ dependencies = [ [[package]] name = "tdx-attest" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "cc-eventlog", @@ -8092,7 +8092,7 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tpm-attest" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "dstack-types", @@ -8111,7 +8111,7 @@ dependencies = [ [[package]] name = "tpm-qvl" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "base64 0.22.1", @@ -8134,7 +8134,7 @@ dependencies = [ [[package]] name = "tpm-types" -version = "0.6.1" +version = "0.6.2" dependencies = [ "cc-eventlog", "dstack-types", @@ -8145,7 +8145,7 @@ dependencies = [ [[package]] name = "tpm2" -version = "0.6.1" +version = "0.6.2" dependencies = [ "anyhow", "hex", diff --git a/dstack/Cargo.toml b/dstack/Cargo.toml index 8877f6296..d5e45080c 100644 --- a/dstack/Cargo.toml +++ b/dstack/Cargo.toml @@ -5,7 +5,7 @@ # SPDX-License-Identifier: Apache-2.0 [workspace.package] -version = "0.6.1" +version = "0.6.2" authors = ["Kevin Wang ", "Leechael "] edition = "2021" license = "MIT" diff --git a/os/mkosi/mkosi.conf b/os/mkosi/mkosi.conf index 185087377..a61a1ef89 100644 --- a/os/mkosi/mkosi.conf +++ b/os/mkosi/mkosi.conf @@ -22,7 +22,7 @@ Format=tar # order, so declaring Output first silently yields "--rootfs.tar". # ImageVersion is checked against DSTACK_VERSION by tests/acceptance.sh. ImageId=dstack -ImageVersion=0.6.1 +ImageVersion=0.6.2 Output=%i-%v-rootfs CompressOutput=no # Must stay empty. The default is [uki, kernel, initrd], and the kernel split diff --git a/os/mkosi/versions.env b/os/mkosi/versions.env index fcebc7b15..92b5cd815 100644 --- a/os/mkosi/versions.env +++ b/os/mkosi/versions.env @@ -20,7 +20,7 @@ RUST_STD_TOOLCHAIN_SHA256=5f106805ed86ebf8df287039e53a45cf974391ef4d088c2760776b GO_TOOLCHAIN_VERSION=1.26.2 GO_TOOLCHAIN_SHA256=990e6b4bbba816dc3ee129eaeaf4b42f17c2800b88a2166c265ac1a200262282 NITRO_TPM_TOOLS_REVISION=d76d6eeebd4169b00a3c3af9858852d48f40e748 -DSTACK_VERSION=0.6.1 +DSTACK_VERSION=0.6.2 DSTACK_CODENAME=trixie OVMF_VARIANT=pre202505 # Must match SRCREV in meta-dstack's dstack-ovmf_git.bb: a generic OVMF diff --git a/os/yocto/layers/meta-dstack/conf/distro/dstack.conf b/os/yocto/layers/meta-dstack/conf/distro/dstack.conf index 534e3ff03..e08076ef5 100644 --- a/os/yocto/layers/meta-dstack/conf/distro/dstack.conf +++ b/os/yocto/layers/meta-dstack/conf/distro/dstack.conf @@ -7,7 +7,7 @@ DISTRO = "dstack" DISTRO_NAME = "dstack" DISTRO_FEATURES:append = " virtualization seccomp systemd usrmerge security dm-verity ipv6" -DISTRO_VERSION = "0.6.1" +DISTRO_VERSION = "0.6.2" DISTROOVERRIDES = "poky:dstack" INITRAMFS_IMAGE = ""