{"schema_version":"1.3.1","id":"GO-2026-4950","modified":"2026-08-18T18:05:09Z","published":"2026-08-18T18:05:09Z","summary":"Authorization bypass via double-encoded paths in github.com/valyala/fasthttp","details":"In github.com/valyala/fasthttp before 1.70.0, ServeFile and ServeFS reinterpret filesystem paths as URIs, decoding percent-encoded sequences and treating characters like '?' and '#' as URI delimiters. In applications where authorization guards inspect ctx.Path() before passing paths to file-serving handlers, double-encoded path variants (e.g., /%2561dmin/export.csv) bypass access controls while still resolving to the protected file on disk.","affected":[{"package":{"name":"github.com/valyala/fasthttp","ecosystem":"Go"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.70.0"}]}],"ecosystem_specific":{"imports":[{"path":"github.com/valyala/fasthttp","symbols":["RequestCtx.SendFile","RequestCtx.SendFileBytes","ServeFS","ServeFile","ServeFileBytes","ServeFileBytesUncompressed","ServeFileUncompressed"]}]}}],"references":[{"type":"REPORT","url":"https://github.com/golang/vulndb/issues/4950"},{"type":"FIX","url":"https://github.com/valyala/fasthttp/pull/2163"},{"type":"WEB","url":"https://gist.github.com/thesmartshadow/af53acdfe0d6ce352d14eb86cecf5a08"},{"type":"WEB","url":"https://github.com/valyala/fasthttp/releases/tag/v1.70.0"}],"credits":[{"name":"Ali Firas (thesmartshadow)"}],"database_specific":{"url":"https://pkg.go.dev/vuln/GO-2026-4950","review_status":"REVIEWED"}}