Echo to framework Go do tworzenia aplikacji webowych. W wersjach 5.0.0–5.0.2 na Windows middleware `middleware.Static` przy domyślnym systemie plików umożliwia path traversal przez backslashe, co pozwala na nieuwierzytelniowany odczyt plików spoza katalogu statycznego. W `middleware/static.go` żądana ścieżka jest rozpakowana i znormalizowana za pomocą `path.Clean` (semantyka URL-i). Funkcja `path.Clean` nie traktuje `\` jako separatora ścieżki, dlatego sekwencje `..\` pozostają w oczyszczonej ścieżce. Wynikowa ścieżka jest następnie przekazywana do `currentFS.Open(...)`. Gdy system plików pozostaje na domyślnym (nil), Echo używa `defaultFS`, który wywołuje `os.Open`. Na Windows `os.Open` traktuje `\` jako separator ścieżki i rozwiązuje `..\`, umożliwiając traversal poza katalog statyczny. Wersja 5.0.3 naprawia ten problem.
▸ Pokaż oryginał (EN)
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NLabstack Echo
APPLabstack5.0.0 – 5.0.3 (bez)Microsoft Windows
OSMicrosoftwszystkie wersje
Powiązane podatności
Atak na łańcuch dostaw DAEMON Tools Lite — trojanizacja instalatorów
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
Path Traversal w Kingsoft WPS Office — ładowanie dowolnej biblioteki Windows
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit