CVE-2026-118655
Mở trang đầy đủCVSS 5.9 MEDIUM Lộ dữ liệu
Echo has a Static Middleware Double-Unescape Path Traversal
Mô tả
Summary
Commit a9ede66a (PR #3006, issue #2599) silently fixed a path traversal vulnerability in the Echo web framework's static file middleware.
Vulnerability
The static middleware double-unescaped URL paths. Go's net/http already decodes Request.URL.Path, but middleware/static.go unconditionally called url.PathUnescape() again:
// BEFORE (vulnerable)
pathUnescape := true
This reassembled path traversal sequences from double-encoded input. An attacker could send GET /%2e%2e%2fsecret.txt or /..%252fsecret.txt and the double-unescape would produce ../secret.txt.
Fix
// AFTER (fixed)
pathUnescape := false
The commit's test TestStatic_percentEncodedTraversalIsBlocked explicitly verifies traversal vectors are blocked.
Impact
Arbitrary file read from server filesystem via percent-encoded path traversal.
References
- Fix: https://github.com/labstack/echo/commit/a9ede66a
- Issue: https://github.com/labstack/echo/issues/2599
- PR: https://github.com/labstack/echo/pull/3006
Patches
Fixed in github.com/labstack/echo/v5 v5.2.0 and github.com/labstack/echo/v4 v4.15.3, where the Static middleware stopped unescaping an already decoded path. Maintainer analysis: reading files outside the configured root could not be reproduced; the confirmed impact was that a double-encoded slash (%252F) could reach a file under a guarded route when the Static middleware is registered globally. Upgrade to v5.4.0 / v4.16.0 or later, which also includes related fixes for encoded and dot-segment paths.
Workarounds
Keep files that need protection outside the Static middleware's root directory.
Điểm và phân loại
- CVSS
- 5.9 MEDIUM v3.1
- Nguồn điểm
- NVD
- Mức độ (theo nguồn)
- MEDIUM
- EPSS
- 0.3%
- CWE
- CWE-174
Vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Ảnh hưởng
| Package | Bản bị ảnh hưởng | Bản đã sửa |
|---|---|---|
go github.com/labstack/echo/v5 |
< 5.2.0 |
5.2.0
|
go github.com/labstack/echo/v4 |
< 4.15.3 |
4.15.3
|
Sản phẩm
- labstack echo
Vì sao bị lọc
- CVSS 5.9 < 8.0 và không thuộc CISA KEV
Loại tác động
- Lộ dữ liệu
- từ khoá "path traversal"; từ khoá "arbitrary file read"
Dữ liệu riêng của nguồn
- CVE.org · Đơn vị cấp mã
- GitHub_M
- CVE.org · SSVC
- Tự động hoá được: no · Khai thác: none · Tác động kỹ thuật: partial
- OSV.dev · ID
- GHSA-xwq5-6cqp-vx96
Tham khảo
- https://github.com/advisories/GHSA-xwq5-6cqp-vx96
- https://github.com/labstack/echo/security/advisories/GHSA-xwq5-6cqp-vx96
- https://github.com/labstack/echo/issues/2599
- https://github.com/labstack/echo/pull/3006
- https://github.com/labstack/echo/commit/a9ede66a5a7196411131beb1ee801e75bbaf7ac6
- https://github.com/labstack/echo/commit/c3fa2a27ff92b2b8db360de614f999ef1da24725
- https://github.com/labstack/echo/releases/tag/v4.15.3
- https://github.com/labstack/echo/releases/tag/v5.2.0
- https://osv.dev/vulnerability/GHSA-xwq5-6cqp-vx96
- https://github.com/labstack/echo