{"id":"CVE-2026-118655","summary":"Echo: Static Middleware Double-Unescape Path Traversal","details":"Echo is a Go web framework. Prior to 4.15.3 and 5.2.0, middleware.Static can decode an already decoded Request.URL.Path a second time. Double-encoded separators can consequently be reconstructed before filesystem resolution. This can reach a file under a guarded route when the static middleware is registered globally. This issue is fixed in 4.15.3 and 5.2.0.","aliases":["GHSA-xwq5-6cqp-vx96"],"modified":"2026-10-29T10:45:54.161405269Z","published":"2026-10-28T20:03:56.897Z","database_specific":{"cwe_ids":["CWE-174"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/118xxx/CVE-2026-118655.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/118xxx/CVE-2026-118655.json"},{"type":"FIX","url":"https://github.com/labstack/echo/commit/a9ede66a5a7196411131beb1ee801e75bbaf7ac6"},{"type":"FIX","url":"https://github.com/labstack/echo/commit/c3fa2a27ff92b2b8db360de614f999ef1da24725"},{"type":"REPORT","url":"https://github.com/labstack/echo/issues/2599"},{"type":"FIX","url":"https://github.com/labstack/echo/pull/3006"},{"type":"WEB","url":"https://github.com/labstack/echo/releases/tag/v4.15.3"},{"type":"WEB","url":"https://github.com/labstack/echo/releases/tag/v5.2.0"},{"type":"ADVISORY","url":"https://github.com/labstack/echo/security/advisories/GHSA-xwq5-6cqp-vx96"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118655"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/labstack/echo","events":[{"introduced":"9500f2745481e2dff1313e2e6734c488e80c13fb"},{"fixed":"5786024ea4d85c01784796e8aa7aac53e007b39b"},{"introduced":"0"},{"fixed":"8800212ad4392d3f5af052f3042aca62cc5911a7"},{"fixed":"a9ede66a5a7196411131beb1ee801e75bbaf7ac6"},{"fixed":"c3fa2a27ff92b2b8db360de614f999ef1da24725"}],"database_specific":{"extracted_events":[{"source":"AFFECTED_FIELD","strategy":"StringRangeExpression","range":[{"introduced":"5.0.0"},{"fixed":"5.2.0"}]},{"range":[{"introduced":"0"},{"fixed":"4.15.3"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"range":[{"fixed":"a9ede66a5a7196411131beb1ee801e75bbaf7ac6"}],"source":"REFERENCES_COMMIT"},{"source":"REFERENCES_COMMIT","range":[{"fixed":"c3fa2a27ff92b2b8db360de614f999ef1da24725"}]},{"source":"REFERENCES_TAG","original_tag":"v4.15.3","range":[{"fixed":"8800212ad4392d3f5af052f3042aca62cc5911a7"}]},{"source":"REFERENCES_TAG","original_tag":"v5.2.0","range":[{"fixed":"5786024ea4d85c01784796e8aa7aac53e007b39b"}]}]}}],"versions":["v4.15.2","v5.1.1","v4.15.1","v5.1.0","v5.0.4","v4.15.0","v5.0.3","v5.0.2","v5.0.1","v5.0.0","v4.14.0","v4.13.4","v4.13.3","v4.13.2","v4.13.1","v4.13.0","v4.12.0","v4.11.4","v4.11.3","v4.11.2","v4.11.1","v4.11.0","v4.10.2","v4.10.1","v4.10.0","v4.9.1","v4.9.0","v4.8.0","v4.7.2","v4.7.1","v4.7.0","v4.6.2","v4.6.1","v4.6.0","v4.5.0","v4.4.0","v4.3.0","v4.2.2","v4.2.1","v4.2.0","v4.1.17","v4.1.16","v4.1.15","v4.1.14","v4.1.13","v4.1.12","v4.1.11","v4.1.10","v4.1.9","v4.1.8","v4.1.7","v4.1.6","v4.1.5","v4.1.4","v4.1.3","v4.1.2","v4.1.1","v4.1.0","v4.0.0","v3.3.10","v3.3.9","v3.3.8-retag","v3.3.7-retag","v3.3.6-retag","v3.3.5-retag","v3.3.4","3.3.4","v3.3.3","3.3.3","3.3.2","v3.3.1","3.3.1","v3.3.0","3.3.0","v3.2.6","3.2.6","v3.2.5","3.2.5","v3.2.4","3.2.4","v3.2.3","3.2.3","v3.3.2","v3.2.2","3.2.2","v3.2.1","v3.2.0","v3.1.0","v3.1.0-rc.1","v3.0.3","v3.0.2","v3.0.1","v3.0.0","v3.0.0-beta.2","v3.0.0-beta.1","v2.0.2","v2.0.1","v2.0.0","v2.0.0-beta.2","v2.0.0-beta.1","v2.0.0-apha.2","v2.0.0-apha1","v2.0.0-apha.1","2.0.0-alpha","v1.3","v1.2.0","v1.1.0","v1.0.0","v0.0.16","v0.0.15","v0.0.14","v0.0.13","v0.0.12","v0.0.11","v0.0.10","v0.0.9","v0.0.8","v0.0.7","v0.0.6","v0.0.5","v0.0.4","v0.0.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-118655.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"}]}