Skip to content

secure_time: true can never sync — guest chrony is built without NTS #745

Open

Description

@h4x3rotab

Problem

Guest images ship /etc/chrony/chrony.conf with every time server set to NTS (server <host> iburst nts), but chronyd is compiled without NTS support. Chrony therefore has zero usable sources and never synchronizes.

Any app with secure_time: true — the manifest default (default_true) — then blocks in dstack-util system_setup.rs on chronyc waitsync, which bails → boot.error → reboot. On SEV-SNP this is a hard loop (cpus are not resettable, terminating → VMM restarts forever); on TDX it's a boot failure.

Confirmed from inside a running CVM:

chronyd 4.8 starting (... -NTS ...)
Missing NTS support
Can't synchronise: no selectable sources (10 unreachable sources)

chronyc authdata shows Cook=0 for all servers (NTS-KE never attempted), and the clock was already correct (stepped 0.000000s) — so it's not a network, clock, or platform issue.

It has gone unnoticed because every real deployment sets secure_time: false; the broken NTS sync is silent until the strict gate is enabled.

Fix

In meta-dstack, recipes-core/chrony/chrony%.bbappend adds DEPENDS += "gnutls" and an NTS config but never enables the NTS build flag. Upstream chrony_4.8.bb gates it behind PACKAGECONFIG[nts]. Add:

PACKAGECONFIG:append = " nts"

Then chronyd is built with NTS and secure_time: true can actually sync.

Separately, single-node/no-gateway deploys (no trusted time source) should default secure_time: false.

Activity

  1. kvinwang commented on Jun 29, 2026

    @kvinwang
    Collaborator

    Opened a meta-dstack fix: Dstack-TEE/meta-dstack#76

    Root cause confirmed: after the Yocto/meta-openembedded upgrade, chrony's NTS support became gated by PACKAGECONFIG[nts] = ",--disable-nts,gnutls". Our bbappend only added gnutls to DEPENDS, but did not enable nts, so bitbake passed --disable-nts and chronyd was built with -NTS.

    The PR explicitly adds:

    PACKAGECONFIG:append = " nts"

    Local check now shows PACKAGECONFIG includes nts and PACKAGECONFIG_CONFARGS no longer contains --disable-nts.

  2. h4x3rotab commented on Jun 30, 2026

    @h4x3rotab
    ContributorAuthor

    Maintainer triage update: this remains open intentionally and is listed in the security roadmap/hardening table: https://github.com/Dstack-TEE/dstack/blob/master/docs/security/public-security-reports.md#related-security-roadmap-and-hardening

    Disposition: security feature bug. The fix landed in Dstack-TEE/meta-dstack#76. Keep this issue open until the dstack-side release or guest image consumption path is validated.

  3. added
    securitySecurity-related issue, report, or hardening work
    on Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsecuritySecurity-related issue, report, or hardening work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions