[X] The maintainer(s) of the affected project have already been made aware of this vulnerability.
Description
Description
Summary: full access to the host's OS file system using osfs.FS with Router.Static
Static file serving using router.Static and osfs.FS allows clients to access any file on the host file system using relative paths because the requested path is not sanitized and . and .. segments are accepted. The files will be returned as a response, provided the system user running the Go application has read access to the requested file.
Use fsutil.NewEmbed(embeddedFS) from the goyave.dev/goyave/v5/util/fsutil package to serve static content using Router.Static instead of &osfs.FS. Embedded file systems are rooted to the specified directory, making it impossible to navigate outside of the developers' intended directory.
Acknowledgement
Description
Description
Summary: full access to the host's OS file system using
osfs.FS
withRouter.Static
Static file serving using
router.Static
andosfs.FS
allows clients to access any file on the host file system using relative paths because the requested path is not sanitized and.
and..
segments are accepted. The files will be returned as a response, provided the system user running the Go application has read access to the requested file.Reproduction
Workarounds
Use
fsutil.NewEmbed(embeddedFS)
from thegoyave.dev/goyave/v5/util/fsutil
package to serve static content usingRouter.Static
instead of&osfs.FS
. Embedded file systems are rooted to the specified directory, making it impossible to navigate outside of the developers' intended directory.Affected Modules, Packages, Versions and Symbols
CVE/GHSA ID
No response
Fix Commit or Pull Request
https://github.com/go-goyave/goyave/commit/5836bff3efaa8a37fbd58d077b93f03e93e05edd
References
No response
Additional information
No response