Dapr
v1.17.19Orchestration & ManagementA security-focused maintenance release fixes access-control, authentication, isolation, denial-of-service, and data-integrity issues. It also changes public metadata writes and limits gRPC metadata, which may affect applications using the public port, gRPC APIs, or the listed state and outbox features.
Action needed (2)
security
id_prefix_matchscope for job target keysThe Scheduler now always terminates the key prefix for job targets with the delimiter, so
id_prefix_matchapplies only to actor reminder IDs as documented by the API.securitySentry host value parsing
Sentry now parses the host value from
X-Forwarded-Hostor theHostheader once. The change covers host validation used by--oidc-allowed-hosts,--jwt-issuer, and--oidc-jwks-uri.
Check if affected (9)
securitymedium
DAPR_API_TOKENvalidation for encoded health check pathsApplies if you use a percent-encoded health check path.
The API token middleware now compares the escaped path matched by the router, so a percent-encoded health check path requires the API token. This fixes GHSA-59m6-82qm-vqgj.
securityHTTP app service invocation access control
Applies if you run HTTP apps.
For HTTP apps, service invocation access control now matches policies against the routed method after decoding percent-encoded characters once and lowercasing it.
security
WatchJobsinternal actor validationApplies if you use
WatchJobswith an internal actor type (dapr.) that does not belong to the calling app and namespace.internal. * The Scheduler rejects a
WatchJobsstream withPermissionDeniedwhen it declares an internal actor type such asdapr.that does not belong to the calling app and namespace.internal. * securityInternal-port gRPC proxy target restriction
Applies if you use the internal port.
On the internal port, the gRPC proxy serves only calls addressed to the local app and returns
PermissionDeniedfor other targets.securityRead-only
--dapr-public-portendpointsApplies if you configure
--dapr-public-port.The public port now serves only read-only
GETendpoints:GET /v1.,0/metadata GET /v1., and0/healthz GET /v1..0/healthz/outbound PUT /v1.remains available on the main API port.0/metadata/{key} security
primaryEncryptionKeysuffix handlingApplies if you configure
primaryEncryptionKey.Decryption now handles values whose
primaryEncryptionKey-related key does not end with the||<key name>suffix that Dapr appends on write.securityShort ciphertext handling in
GetStateandGetBulkStateApplies if you use
GetStateorGetBulkState.Decryption now handles ciphertext shorter than the nonce. Over the gRPC API,
GetStateandGetBulkStateno longer cause a sidecar panic, while the HTTP request failure is handled.securityTransactional outbox event publication
Applies if you use the transactional outbox.
The transactional outbox now prevents a message's own message from being published to the business topic as an outbox event of the target app.
securitygRPC metadata size limit
Applies if you use the gRPC API.
This breaking change limits gRPC calls to the Dapr API, including gRPC proxying, to metadata of 64 KiB or the value of
--read-buffer-sizewhen it is larger. Calls exceeding that limit now fail with gRPCInternal.
A weekly email arrives when a release needs action. Like the security patches in this release.