Skip to content

Thoth CLI v0.3.7

Choose a tag to compare

@atensecurity-bot atensecurity-bot released this 12 Sep 21:10
· 12 commits to main since this release
v0.3.7
cdad546

Thoth CLI v0.3.7

0.3.7 - 2026-09-12

Stable release of the macOS runtime (thoth and thothctl) for Apple Silicon
and Intel. This is the global latest release; Linux and Windows artifacts are
not included and remain at v0.3.6. This client release does not change the
platform readiness status.

Security

  • Updated the HTTP/2 stack from h2 0.4.13 in v0.3.6 to 0.4.19, fixing
    RUSTSEC-2026-0258 (unbounded queuing of empty DATA frames through hyper).
    The advisory is patched in h2 0.4.16 and later.

Added

  • Carried an action attestation ID through every governed tool call. The proxy
    reuses action_attestation_id from the request when supplied and otherwise
    generates one, sends it to the enforcer, and reports it on decision responses
    and on both the request and terminal telemetry events, so an attempt can be
    correlated end to end.
  • Reported decision evidence on ALLOW and BLOCK responses, which previously
    carried none. BLOCK, DEFER and STEP_UP responses now include the
    enforcement trace ID, action attestation ID, authorization decision, reason,
    reason code, action classification and risk score when the enforcer supplies
    them.

Fixed

  • Stopped writing enforcer error response bodies and selected response headers
    into proxy logs when a call fails. A failure is now recorded as a reason code
    (enforcer_transport_error, enforcer_http_error, enforcer_invalid_response)
    with the HTTP status only, so response content cannot reach logs.
  • Distinguished an enforcer response with no recognized decision from a genuine
    BLOCK. Both still fail closed, but the former is now recorded as
    enforcer_invalid_response rather than being indistinguishable from a policy
    denial in evidence.
  • Preserved request-side correlation IDs on the terminal event when the enforcer
    is unreachable, returns an error status, or returns an undecodable body, so a
    failed call is still traceable to the attempt that caused it.
  • Kept a locally escalated STEP_UP from exporting a receipt that the
    underlying ALLOW never carried.
  • Distinguished an absent model risk score from one the enforcer explicitly
    reported as null, and stopped copying non-numeric risk payloads into decision
    evidence.
  • Cleared stale request-side reason fields from terminal telemetry so a decision
    reason always describes that decision.

Known limitations

  • On Windows the proxy API key file (~/.thoth/proxy_api_key.json) is written
    with inherited ACLs. The owner-only permission handling that thothctl
    applies on macOS and Linux has no Windows equivalent yet, so treat that file
    as readable by any account with access to the user profile until it does.

Changed

  • Serialized the decision-evidence integration fixtures. Each spawns a proxy
    subprocess and a mock enforcer, and running them concurrently exhausted the
    proxy's bounded 5s HTTP timeout, so the proxy failed closed and the suite
    reported six failures unrelated to proxy behavior.

This release contains macOS runtime assets only. Linux and Windows remain on their previous release; select an explicit earlier version for those platforms.

Enterprise Release Metadata

  • Sigstore keyless signatures (*.sig + *.sigstore.json) for all release assets
  • Build provenance (provenance.json, GitHub attestations *.intoto.jsonl)
  • SBOMs (sbom.cdx.json, sbom.spdx.json)
  • Immutable manifest (release-manifest.json)
  • Apple signing/notarization metadata (signing-metadata.json, apple-notarization-log.json when enabled)
  • Santa trust metadata (santa-metadata.json)

Assets

  • apple-notarization-log.json
  • apple-notarization-log.json.sigstore.json
  • apple-notarization-state.json
  • apple-notarization-state.json.sigstore.json
  • apple-notarization-submit.json
  • apple-notarization-submit.json.sigstore.json
  • artifact-list.txt
  • artifact-list.txt.sigstore.json
  • checksums.sha256
  • checksums.sha256.sigstore.json
  • checksums.sha512
  • checksums.sha512.sigstore.json
  • github-attestation-0.intoto.jsonl
  • github-attestation-0.intoto.jsonl.sigstore.json
  • github-attestation-1.intoto.jsonl
  • github-attestation-1.intoto.jsonl.sigstore.json
  • github-attestation-2.intoto.jsonl
  • github-attestation-2.intoto.jsonl.sigstore.json
  • macos-0.intoto.jsonl
  • macos-0.intoto.jsonl.sigstore.json
  • macos-1.intoto.jsonl
  • macos-1.intoto.jsonl.sigstore.json
  • provenance.json
  • provenance.json.sigstore.json
  • release-manifest.json
  • release-manifest.json.sigstore.json
  • santa-metadata.json
  • santa-metadata.json.sigstore.json
  • sbom.cdx.json
  • sbom.cdx.json.sigstore.json
  • sbom.spdx.json
  • sbom.spdx.json.sigstore.json
  • signing-metadata.json
  • signing-metadata.json.sigstore.json
  • sigstore-metadata.json
  • thoth-macos-arm64
  • thoth-macos-arm64.provenance.intoto.jsonl
  • thoth-macos-arm64.provenance.intoto.jsonl.sigstore.json
  • thoth-macos-arm64.sigstore.json
  • thoth-macos-universal
  • thoth-macos-universal.pkg
  • thoth-macos-universal.pkg.sigstore.json
  • thoth-macos-universal.sigstore.json
  • thoth-macos-universal.tar.gz
  • thoth-macos-universal.tar.gz.sigstore.json
  • thoth-macos-x86_64
  • thoth-macos-x86_64.provenance.intoto.jsonl
  • thoth-macos-x86_64.provenance.intoto.jsonl.sigstore.json
  • thoth-macos-x86_64.sigstore.json
  • thothctl-macos-arm64
  • thothctl-macos-arm64.provenance.intoto.jsonl
  • thothctl-macos-arm64.provenance.intoto.jsonl.sigstore.json
  • thothctl-macos-arm64.sigstore.json
  • thothctl-macos-universal
  • thothctl-macos-universal.sigstore.json
  • thothctl-macos-x86_64
  • thothctl-macos-x86_64.provenance.intoto.jsonl
  • thothctl-macos-x86_64.provenance.intoto.jsonl.sigstore.json
  • thothctl-macos-x86_64.sigstore.json

Standalone binary provenance

thoth-macos-universal-loose.intoto.jsonl verifies the standalone thoth binary.
macos-0.intoto.jsonl covers the Homebrew archive and its binaries;
macos-1.intoto.jsonl covers the notarized installer.
An upload retry signed the same executable code again, so the standalone
thoth binary and packaged copy have different code-signature bytes.
The published binaries and checksum manifests have not been replaced.