go package report

Is github.com/labstack/echo safe?

1 known vulnerability, worst severity HIGH.

// reach

0 direct dependencies

none carry a known advisory

    0 packages depend on it

    an advisory here reaches each of them

      Create a free accountfor every dependency path, dependent and what to upgrade
      // ai model usage

      Tracked for PyPI packages. HuggingFace models declare Python dependencies, so go packages are not covered.


      cvss
      0.0
      high

      severity out of 10

      epss
      0.00%
      medium

      chance of exploitation in 30 days, 35th percentile of all CVEs

      xyz score
      not scored

      CyberXYZ composite out of 10

      fig. 01 — GHSA-vfp3-v2gw-7wfq, the advisory selected below

      // 1 advisories

      GHSA-vfp3-v2gw-7wfq

      HIGHCVE-2026-55677
      // summary

      Echo's router and static file handler disagree on URL path decoding. The router matches routes using the raw encoded path (preserving %2F as-is), while StaticDirectoryHandler unescapes %2F to / before resolving filesystem paths. This allows an attacker to bypass route-level access controls and read static files without authorization.

      // details

      Root cause 1 — router.go lines 798-802: The router uses req.URL.RawPath for route matching when useEscapedPathForRouting is false (the default). This means /admin%2Fsecret.txt is treated as a single path segment and does NOT match the /admin/ route pattern.

      if !r.useEscapedPathForRouting && req.URL.RawPath != "" {
          path = req.URL.RawPath
      }

      Root cause 2 — echo.go lines 559-568: StaticDirectoryHandler calls url.PathUnescape() on the path parameter before opening files. This converts %2F back to /, resolving admin/secret.txt on disk.

      if !disablePathUnescaping {
          tmpPath, err := url.PathUnescape(p)
          p = tmpPath
      }
      name := filepath.ToSlash(filepath.Clean(strings.TrimPrefix(p, "/")))
      // poc (screenshot)

      Sample:

      403:

      Bypass with encoded slash:

      // impact

      Unauthorized static file disclosure. Applications that protect route prefixes with authentication middleware while also serving static files from a broader root are vulnerable. An attacker only needs to encode the slash (/ → %2F) in the URL to bypass all route-level protection.

      Common affected pattern:

      adminGroup := e.Group("/admin", authMiddleware)
      e.StaticFS("/", os.DirFS("public"))
      // cvss v3.1 vector

      CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

      Attack vector
      Network
      Attack complexity
      Low
      Privileges required
      None
      User interaction
      None
      Scope
      Unchanged
      Confidentiality
      High
      Integrity
      None
      Availability
      None

      Checked 2026-09-26 at 00:59 UTC. The most recent advisory here was published 2026-08-25. Updated continuously from NVD, GHSA, OSV and CNA feeds.

      Think a verdict here is wrong? Tell us — we respond within 2 business days.