RATATOSKRATATOSK
Sign in

Dapr

v1.17.19Orchestration & Management
Oct 31, 2026

ACTION 2CHECK 9

A 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)

  • securityid_prefix_match scope for job target keys

    The Scheduler now always terminates the key prefix for job targets with the delimiter, so id_prefix_match applies only to actor reminder IDs as documented by the API.

  • securitySentry host value parsing

    Sentry now parses the host value from X-Forwarded-Host or the Host header once. The change covers host validation used by --oidc-allowed-hosts, --jwt-issuer, and --oidc-jwks-uri.

Check if affected (9)

  • securitymediumDAPR_API_TOKEN validation for encoded health check paths

    Applies 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.

  • securityWatchJobs internal actor validation

    Applies if you use WatchJobs with an internal actor type (dapr.internal.*) that does not belong to the calling app and namespace.

    The Scheduler rejects a WatchJobs stream with PermissionDenied when it declares an internal actor type such as dapr.internal.* that does not belong to the calling app and namespace.

  • 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 PermissionDenied for other targets.

  • securityRead-only --dapr-public-port endpoints

    Applies if you configure --dapr-public-port.

    The public port now serves only read-only GET endpoints: GET /v1.0/metadata, GET /v1.0/healthz, and GET /v1.0/healthz/outbound. PUT /v1.0/metadata/{key} remains available on the main API port.

  • securityprimaryEncryptionKey suffix handling

    Applies 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 GetState and GetBulkState

    Applies if you use GetState or GetBulkState.

    Decryption now handles ciphertext shorter than the nonce. Over the gRPC API, GetState and GetBulkState no 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-size when it is larger. Calls exceeding that limit now fail with gRPC Internal.

Add Dapr to your stack

A weekly email arrives when a release needs action. Like the security patches in this release.

Add to stack →