SPIRE
v1.16.0SecurityA substantial feature and behavior release with experimental capabilities, new integrations, and broad correctness and performance fixes. It also changes behavior in ways that affect some existing attestors, plugins, and configuration setups, including security-related removals and breaking defaults.
Check if affected (6)
securityThe mountinfo fallback, removed from the container locator
Applies if you use the
dockerork8sworkload attestor.The mountinfo fallback has been removed from the container locator used by the
dockerandk8sworkload attestors because it could be forged.breakingAgent SPIFFE IDs under
/spire/agentApplies if you use external plugins or configure
agent_path_template.Agent SPIFFE IDs must now reside under
/spire/agent; attestations that produce other IDs fail unless the experimentalallow_nonconforming_agent_idsconfiguration is set.breakingRootless Podman attestation requirement
Applies if you use rootless Podman with the
dockerworkload attestor and do not configureuse_rootless_podman.Rootless Podman workload attestation now requires the
use_rootless_podmanoption in thedockerworkload attestor.breakingBroker API JWT-SVID service for admin and downstream entries
Applies if you use the Broker API for admin or downstream entries.
The Broker API no longer serves JWT-SVIDs for admin or downstream entries.
breakingThe
journal_idcolumn inca_journalsApplies if you configure
disable_migration.The
ca_journalstable in thesqldatastore gains ajournal_idcolumn reserved for future use. Deployments withdisable_migrationset are affected by this schema migration.breakingThe
use_sync_authorized_entriesagent option, removedApplies if you configure
use_sync_authorized_entries.The
use_sync_authorized_entriesagent option has been removed.
Plan ahead (2)
deprecatedNotifier plugins, deprecated in favor of BundlePublisher plugins
Applies if you use Notifier plugins.
Notifier plugins are deprecated in favor of BundlePublisher plugins.
deprecatedOIDC Discovery Provider certificate sections, deprecated
Applies if you configure
acmeorserving_cert_file.The
acmeandserving_cert_filesections in the OIDC Discovery Provider are deprecated in favor ofserving_cert_source.
All 40 other recorded changesadditions 18 · fixes 13 · value changes 6 · constraints 2 · defaults 1
additions (18)
- Experimental WIT-SVID support, enabled with the
enable_wit_svidsserver and agent options, including Workload API methods, aspire-agent api fetch witCLI command, an agent-side WIT-SVID cache, per-entry and default (default_wit_svid_ttl) WIT-SVID TTLs, and publishing of WIT signing keys through thespireUpstreamAuthority plugin (#7243, #7244, #7273, #7282, #7302, #7306, #7354) kmipKeyManager plugin for storing keys in KMIP-compliant servers (#7235)- Microsoft Entra ID authentication for Azure PostgreSQL and MySQL in the
sqldatastore (#7279) - In-process log file rotation via the
log_file_rotationagent and server option (#7229) - Support for triggering a log file reopen on Windows, and external tools can now move or delete the log file on Windows (#7248, #7269)
- Experimental
use_xdsagent option to resolve the SPIRE server via xDS (#7256) - Experimental
server_load_balancing_configagent option to configure the load balancing policy used for connections to the server (#7241) - Experimental agent options to configure the sync retry backoff (
sync_retry_backoff),rpc_timeoutandmax_bundle_workers(#7093, #7286) bootstrap_bundle_pathoption onfederates_withto bootstraphttps_spiffefederation trust from a file (#7260)serving_cert_sourcesection in the OIDC Discovery Provider, including aworkload_apivariant that serves HTTPS using an X509-SVID from the Workload API (#7285)audit_log_exclude_agent_syncserver option to omit successful bundle and authorized-entry read audit records (#7328)group_templateandallowed_groupsoptions in thex509popnode attestor to produce group selectors (#7002)extension_oidsoption in thex509popnode attestor to expose certificate extensions as selectors (#7327)- Subject attribute selectors by OID in the
tpm_devidnode attestor (#7312) - Optional
verify_client_ipin thesshpopandhttp_challengenode attestors (#7191, #7240) trust_bundle_pathoption in theazure_imdsnode attestor for additional root CAs (#7143)exclude_completed_podsoption in thek8sworkload attestor to drop completed pods from the kubelet cache (#7177)- CA rotation horizon metrics (#7325)
fixes (13)
- The agent retries
NewJWTSVIDwith backoff on transient errors (#7169) - Cached SVIDs are invalidated when their registration entry changes substantially, preventing workloads from receiving SVIDs issued for a different entry (#7310)
- LRU cache subscribers now match on complete selector sets (#7257)
aws_secretsmanagerandgcp_secretmanagerSVIDStore plugins now handle federated bundles with multiple or no roots (#7309)- The server keeps processing bundle updates after a single failure (#7319)
- Bundle subscribers are notified when a bundle is removed (#7331)
- The OIDC Discovery Provider now allows CORS (#7224)
- The rotator failure count is reset after a successful rotation (#7254)
log_fileis no longer opened when validating configuration (#7247)- The agent and server no longer exit as crashed on gRPC context canceled errors during startup (#7274)
- No more spurious warning on profiling server shutdown (#7211)
- The server CA now honors upstream X.509 chain expiry during rotation (#7303)
- The agent no longer panics during workload attestation when sigstore verification meets a signature that has a Rekor entry but no Rekor bundle (#7363)
value changes (6)
- The
cache_manager/expiring_svidsandcache_manager/outdated_svidssamples now carry ansvid_typelabel (X509orWIT), so counts are reported per SVID type (#7244) - DNS names are case-folded before IDNA validation (#7255)
- Reduced database load for entry writes, attested node cache rebuilds and agent authorization (#7182, #7218, #7304)
- Reduced memory usage when fetching kubelet pod lists (#7320)
- Fulcio roots are now loaded through sigstore-go TUF APIs, honoring
TUF_ROOTandSIGSTORE_NO_CACHE(#7263) - Updated Go to 1.27.3 (#7252, #7267, #7346, #7353)
constraints (2)
- The
k8s_psatnode attestor now rejects attestations when the fetched pod UID does not match the token's pod UID (#7117) - Pagination tokens larger than 32 bits are now accepted by the datastore (#7201)
defaults (1)
- The
k8sworkload attestor broker configuration now applies sensible defaults, so brokers no longer need to be specified twice (#7187)
A weekly email arrives when a release needs action. Like the security patches and breaking changes in this release.