Skip to content

chore(deps): bump github.com/dapr/dapr from 1.6.0 to 1.15.14 in /ci/pod/openfunction/function-example/test-body#13252

Open
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot/go_modules/ci/pod/openfunction/function-example/test-body/github.com/dapr/dapr-1.15.14
Open

chore(deps): bump github.com/dapr/dapr from 1.6.0 to 1.15.14 in /ci/pod/openfunction/function-example/test-body#13252
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot/go_modules/ci/pod/openfunction/function-example/test-body/github.com/dapr/dapr-1.15.14

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot bot commented on behalf of github Apr 17, 2026

Bumps github.com/dapr/dapr from 1.6.0 to 1.15.14.

Release notes

Sourced from github.com/dapr/dapr's releases.

Dapr Runtime v1.15.14

Dapr 1.15.14

This update contains a critical security fix:

Security: Service invocation path traversal bypasses access control policies

Problem

Reserved URL characters and path traversal sequences in service invocation method paths could bypass access control policies. An attacker with access to the Dapr HTTP or gRPC API could invoke operations on a target application that the ACL was configured to deny.

Impact

Any deployment using access control policies for service invocation is affected. An attacker who can reach the Dapr API (HTTP or gRPC) could:

  • Use encoded path traversal (admin%2F..%2Fpublic) to reach an allowed path (/public) while the method started from a denied prefix (/admin).
  • Use encoded fragment (%23) or query (%3F) characters to cause the ACL to evaluate a different path than what was delivered to the target application.
  • Use a bare % to crash the ACL normalization, potentially bypassing the policy entirely.

The gRPC API was the more dangerous vector because gRPC passes the method as a raw string with no client-side URL sanitization — #, ?, %, ../, and control characters were all delivered literally.

Root Cause

The method path was normalized independently in two places:

  1. The ACL used purell.NormalizeURLString which treated the method as a URL — decoding %XX, resolving ../, and stripping # as a fragment delimiter and ? as a query delimiter.
  2. The dispatch layer (constructRequest for HTTP, gRPC passthrough) used the raw method string.

This created a mismatch: the ACL authorized one path while the target application received a different one. For example, admin%2F..%2Fpublic was normalized by the ACL to public (allowed), but the target application received the raw admin/../public.

Solution

The method path is now normalized at the service invocation edge — in directMessaging.Invoke for HTTP and gRPC public API calls, in callLocalValidateACL for gRPC internal calls, and in the gRPC proxy handler for proxied calls. The normalized form is used for both the ACL check and the outbound dispatch, eliminating the mismatch. The ACL is a pure policy evaluation layer and performs no normalization of its own.

For HTTP, Go's net/http server decodes percent-encoding in r.URL.Path before the method is extracted. For gRPC, method strings are raw (no percent-decoding) and are treated as opaque — percent-encoded sequences like %2F are literal characters, not path separators.

Normalization uses path.Clean to resolve ../ and duplicate slashes, and rejects method paths containing #, ?, null bytes, or control characters. The purell dependency has been removed from the ACL path.

As defense-in-depth, constructRequest in the HTTP channel applies path.Clean to the method before building the outbound URL.

Users are strongly encouraged to upgrade to this release.

Go: Update to v1.25.9

Update Go version to cover CVEs in the 1.24 line.

Dapr Runtime v1.15.13

... (truncated)

Commits
  • cb31ff1 [1.15] fix service invocation path traversal ACL bypass (#9802)
  • ae09be1 Updated components contrib, and added release notes (#9152)
  • 5fa853e Merge pull request #9145 from cicoyle/cherrypick-grpc-metadata-1.15
  • e0bbaa5 cherrypick and fix issues from 1.15 and 1.16 having diff code refactors
  • 8d5f4c5 overwrite incoming token and fix failing test
  • 0d8349e read APP_API_TOKEN once, plumb thru both gRPC & HTTP, remove per-request env ...
  • 2de29d6 use bitnami legacy
  • 94cfa56 bump e2e time
  • e542ae3 rm file that is non existent in 1.15 that exists in 1.16
  • dd5eb49 release notes
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [github.com/dapr/dapr](https://github.com/dapr/dapr) from 1.6.0 to 1.15.14.
- [Release notes](https://github.com/dapr/dapr/releases)
- [Changelog](https://github.com/dapr/dapr/blob/master/RELEASE.md)
- [Commits](dapr/dapr@v1.6.0...v1.15.14)

---
updated-dependencies:
- dependency-name: github.com/dapr/dapr
  dependency-version: 1.15.14
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Apr 17, 2026
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants