5.3 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): Low (L)
- Integrity (I): None (N)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): Low (L)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): None (N)
- Modified Availability (MA): None (N)
by @LeSuisse Activity log
- Created suggestion
-
@LeSuisse
ignored
15 packages
- echoip
- client-ip-echo
- vkdevicechooser
- haskellPackages.echo
- python312Packages.echo
- python313Packages.echo
- python314Packages.echo
- vimPlugins.lspecho-nvim
- python312Packages.llm-echo
- python313Packages.llm-echo
- python314Packages.llm-echo
- python312Packages.pycolorecho
- python313Packages.pycolorecho
- python314Packages.pycolorecho
- xdg-desktop-portal-termfilechooser
- @LeSuisse dismissed
Echo has a Windows path traversal via backslash in middleware.Static default filesystem
Echo is a Go web framework. In versions 5.0.0 through 5.0.2 on Windows, Echo’s `middleware.Static` using the default filesystem allows path traversal via backslashes, enabling unauthenticated remote file read outside the static root. In `middleware/static.go`, the requested path is unescaped and normalized with `path.Clean` (URL semantics). `path.Clean` does not treat `\` as a path separator, so `..\` sequences remain in the cleaned path. The resulting path is then passed to `currentFS.Open(...)`. When the filesystem is left at the default (nil), Echo uses `defaultFS` which calls `os.Open` (`echo.go:792`). On Windows, `os.Open` treats `\` as a path separator and resolves `..\`, allowing traversal outside the static root. Version 5.0.3 fixes the issue.
References
-
https://github.com/labstack/echo/security/advisories/GHSA-pgvm-wxw2-hrv9 x_refsource_CONFIRM
-
https://github.com/labstack/echo/pull/2891 x_refsource_MISC
Affected products
- ==>= 5.0.0, < 5.0.3
Ignored packages (15)
pkgs.echoip
IP address lookup service
-
nixos-unstable 0-unstable-2026-02-14
- nixpkgs-unstable 0-unstable-2026-02-14
- nixos-unstable-small 0-unstable-2026-02-14
pkgs.client-ip-echo
Accepts TCP connections and echoes the client's IP address back to it
pkgs.vkdevicechooser
Vulkan layer to force a specific device to be used
pkgs.haskellPackages.echo
A cross-platform, cross-console way to handle echoing terminal input
pkgs.python312Packages.echo
None
pkgs.python313Packages.echo
Callback Properties in Python
pkgs.python314Packages.echo
Callback Properties in Python
pkgs.vimPlugins.lspecho-nvim
None
pkgs.python312Packages.llm-echo
None
pkgs.python313Packages.llm-echo
Debug plugin for LLM
pkgs.python314Packages.llm-echo
Debug plugin for LLM
pkgs.python312Packages.pycolorecho
None
pkgs.python313Packages.pycolorecho
Simple Python package for colorized terminal output
pkgs.python314Packages.pycolorecho
Simple Python package for colorized terminal output
pkgs.xdg-desktop-portal-termfilechooser
xdg-desktop-portal backend for choosing files with your favorite file chooser