Skip to content

Update module github.com/labstack/echo/v5 to v5.3.1 - #66

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/github.com-labstack-echo-v5-5.x
Open

Update module github.com/labstack/echo/v5 to v5.3.1#66
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/github.com-labstack-echo-v5-5.x

Conversation

@renovate

@renovate renovate Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/labstack/echo/v5 v5.1.0v5.3.1 age confidence

Release Notes

labstack/echo (github.com/labstack/echo/v5)

v5.3.1

Compare Source

Fixes

  • fix(static): preserve matched handler 404s by @​JSap0914 in #​3043
  • fix(group): Implicitly registered group routes should be allowed overwritten in default routes by @​aldas in #​3049

Enhancements

v5.3.0

Compare Source

Logic changes
PR #​2996 revert back to v4 behavior for a group registering implicit 404 handlers.

If you do not want this behavior, can do not want implicit 404 handlers for groups, use:

e :=  echo.NewWithConfig(echo.Config{NoGroupAutoRegister404Routes: true})
g := e.Group("/api")

some other noteworthy echancements:

e.QUERY("/", func(c *Context) error {
  return c.String(http.StatusTeapot, "OK")
})
  • Router: automatically handle HEAD request by GET handlers in labtack#2949
e := echo.NewWithConfig(echo.Config{
  Router: echo.NewRouter(echo.RouterConfig{
    AutoHandleHEAD: true,
  }),
})

Enhancements

v5.2.1

Compare Source

Security

Make serving static file releated methods and middleware not unescape path by default - so how the way Router interprets paths and Static methods/middleware is consistent.

Given following situation:

// 0.
// given folder structure:
// private.txt
// public/
// public/index.html
// public/text.txt
// public/admin/private.txt

// 1. share `public/` folder contents from the server root. This folder actually contains subfolder `admin` which
// contents we want to forbid from downloading
e.Static("/", "public")

// 2. naively assume that everything under /admin folder is now forbidden
e.GET("/admin/*", func(c *Context) error {
    return ErrForbidden
})

Then requests to /admin%2fprivate.txt would not be matched to GET /admin/* route (routing does not look unescaped path) and static file serving will use unescaped path to serve the file.

Note: this way of "guarding" subfolders will never work for for paths like /assets/../admin%2fprivate.txt which will path.Clean("/assets/../admin%2fprivate.txt") to /admin/private.txt and are servable if static file serving is configured to unescape paths.

If you want to guard routes - use middlewares on Static* methods and before Static middleware.


  • revert PR #​3009 changes to just disabling path escaping by default in static methods/middleware by @​aldas in #​3016

Closes GHSA-vfp3-v2gw-7wfq more completely: the previous fix (#​3009) rejected explicitly encoded
separators at the handler level; this patch makes the no-unescape behavior the default so new configurations are safe without extra opt-out steps.

What changed: DisablePathUnescaping (on StaticConfig and StaticDirectoryHandlerConfig) is deprecated and replaced by EnablePathUnescaping (default false). Path unescaping is now opt-in.

What this protects: With EnablePathUnescaping: false (new default), encoded separators (%2F, %5C) are never decoded before routing or file lookup, so they cannot
bypass route-level authentication or other middleware guards.

What this does NOT protect: Serving a directory with Static, StaticFS, or StaticDirectoryHandler exposes its entire subtree. Sibling routes are not a reliable
ACL boundary — attach authorization middleware directly to the static mount, or serve sensitive sub-trees under separate guarded routes.

Breaking change / migration: If you serve files whose names contain URL-encoded characters (e.g., /hello%20world.txthello world.txt), you must now opt in:

// Static middleware
e.Use(middleware.StaticWithConfig(middleware.StaticConfig{
    EnablePathUnescaping: true, // only safe when NOT relying on route-based ACL guards
    ...
}))

// StaticDirectoryHandler
middleware.StaticDirectoryHandler(fs, &middleware.StaticDirectoryHandlerConfig{
    EnablePathUnescaping: true,
})

Full Changelog: labstack/echo@v5.2.0...v5.2.1

v5.2.0

Compare Source

Security

Fixes GHSA-vfp3-v2gw-7wfq: an encoded path separator (%2F or %5C) in a static file URL could bypass route-level middleware (e.g. authentication on a sibling route) and disclose static files. Both StaticDirectoryHandler/StaticFS and the Static middleware are affected. Thanks to @​a-tt-om and @​oran-gugu for reporting.

Enhancements

New Contributors

Full Changelog: labstack/echo@v5.1.1...v5.2.0

v5.1.1

Compare Source

Security

Thanks to @​shblue21 for reporting this issue.

Enhancements


Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added dependencies Pull requests that update a dependency file go labels May 4, 2026
@renovate
renovate Bot enabled auto-merge (squash) May 4, 2026 09:02
@renovate renovate Bot added dependencies Pull requests that update a dependency file go labels May 4, 2026
@renovate
renovate Bot force-pushed the renovate/github.com-labstack-echo-v5-5.x branch from 135fa20 to 49e3509 Compare June 14, 2026 18:10
@renovate renovate Bot changed the title Update module github.com/labstack/echo/v5 to v5.1.1 Update module github.com/labstack/echo/v5 to v5.2.0 Jun 14, 2026
@renovate
renovate Bot force-pushed the renovate/github.com-labstack-echo-v5-5.x branch from 49e3509 to 8d21cf9 Compare June 16, 2026 01:03
@renovate renovate Bot changed the title Update module github.com/labstack/echo/v5 to v5.2.0 Update module github.com/labstack/echo/v5 to v5.2.1 Jun 16, 2026
@renovate
renovate Bot force-pushed the renovate/github.com-labstack-echo-v5-5.x branch from 8d21cf9 to 24981f7 Compare July 12, 2026 23:44
@renovate renovate Bot changed the title Update module github.com/labstack/echo/v5 to v5.2.1 Update module github.com/labstack/echo/v5 to v5.3.0 Jul 12, 2026
@renovate

renovate Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: examples/go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 4 additional dependencies were updated

Details:

Package Change
golang.org/x/crypto v0.47.0 -> v0.54.0
golang.org/x/net v0.49.0 -> v0.57.0
golang.org/x/sys v0.40.0 -> v0.47.0
golang.org/x/text v0.33.0 -> v0.40.0

| datasource | package                     | from   | to     |
| ---------- | --------------------------- | ------ | ------ |
| go         | github.com/labstack/echo/v5 | v5.1.0 | v5.3.1 |


Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate
renovate Bot force-pushed the renovate/github.com-labstack-echo-v5-5.x branch from 24981f7 to 52b7ea0 Compare July 21, 2026 17:05
@renovate renovate Bot changed the title Update module github.com/labstack/echo/v5 to v5.3.0 Update module github.com/labstack/echo/v5 to v5.3.1 Jul 21, 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants