5.3 MEDIUM
- CVSS version: 3.1
- Attack vector (AV): NETWORK
- Attack complexity (AC): LOW
- Privileges required (PR): NONE
- User interaction (UI): NONE
- Scope (S): UNCHANGED
- Confidentiality impact (C): LOW
- Integrity impact (I): NONE
- Availability impact (A): NONE
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
Matching in nixpkgs
pkgs.echoip
IP address lookup service
-
nixos-unstable 0-unstable-2023-05-21
- nixpkgs-unstable 0-unstable-2026-02-14
- nixos-unstable-small 0-unstable-2026-02-14
-
nixos-25.11 0-unstable-2023-05-21
- nixos-25.11-small 0-unstable-2026-02-14
- nixpkgs-25.11-darwin 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
Callback Properties in Python
pkgs.python313Packages.echo
Callback Properties in Python
pkgs.python314Packages.echo
Callback Properties in Python
pkgs.vimPlugins.lspecho-nvim
None
pkgs.python312Packages.llm-echo
Debug plugin for LLM
pkgs.python313Packages.llm-echo
Debug plugin for LLM
pkgs.python314Packages.llm-echo
Debug plugin for LLM
pkgs.python312Packages.pycolorecho
Simple Python package for colorized terminal output
pkgs.python313Packages.pycolorecho
Simple Python package for colorized terminal output
pkgs.python314Packages.pycolorecho
Simple Python package for colorized terminal output
Package maintainers
-
@Defelo Defelo
-
@rvolosatovs Roman Volosatovs <rvolosatovs@riseup.net>
-
@SuperSandro2000 Sandro Jäckel <sandro.jaeckel@gmail.com>
-
@ifurther Feather Lin
-
@ShamrockLee Yueh-Shun Li <shamrocklee@posteo.net>
-
@sigmike Michael Witrant <mike+nixpkgs@lepton.fr>
-
@L-Trump Luo Chen <ltrump@163.com>
-
@body20002 Abdallah Gamal <body20002.test@gmail.com>
-
@philiptaron Philip Taron <philip.taron@gmail.com>