| medium |
Unauthenticated exposure of all registered expvars ExpvarHandler |
expvarhandler/expvar.go |
INVALID
|
| medium |
Unbounded pre-Flush response buffering allows memory exhaustion writer.Write |
fasthttpadaptor/adaptor.go |
INVALID
|
| medium |
Wrapped handler panic is re-panicked in the fasthttp handler goroutine NewFastHTTPHandler |
fasthttpadaptor/adaptor.go |
INVALID
|
| medium |
Flush() can block forever after completion or hijack writer.Flush |
fasthttpadaptor/adaptor.go |
INVALID
|
| medium |
Zero-copy byte-to-string conversion aliases mutable fasthttp request buffers b2s |
fasthttpadaptor/b2s.go |
INVALID
|
| medium |
Stale TransferEncoding and RequestURI state when http.Request is reused ConvertRequest |
fasthttpadaptor/request.go |
INVALID
|
| medium |
Duplicate HTTP headers are collapsed instead of preserved ConvertRequest |
fasthttpadaptor/request.go |
VALID
|
| medium |
Special header cases are matched before canonicalization and are case-sensitive ConvertRequest |
fasthttpadaptor/request.go |
INVALID
|
| medium |
Protocol desync: bufio.Reader discards tunneled data after CONNECT 200 httpProxyDial |
fasthttpproxy/dialer.go |
INVALID
|
| medium |
Unbounded hang on CONNECT when ConnectTimeout is zero (default) httpProxyDial |
fasthttpproxy/dialer.go |
INVALID
|
| medium |
Nil fasthttp.DialFunc returned on malformed proxy environment, causing process panic FasthttpProxyHTTPDialerTimeout |
fasthttpproxy/proxy_env.go |
INVALID
|
| medium |
Unbounded writer blocking when the receiving end fills the channel and stops reading Write |
fasthttputil/pipeconns.go |
INVALID
|
| medium |
Write timeout discards pooled buffer and latches write deadline to closed Write |
fasthttputil/pipeconns.go |
INVALID
|
| medium |
Information disclosure: raw header bytes in error messages headerErrorMsg |
header.go |
INVALID
|
| medium |
Partial header state corruption after trailer parse error tryReadTrailer |
header.go |
INVALID
|
| medium |
Silent acceptance of duplicate Content-Length with divergent values parseHeaders (ResponseHeader) |
header.go |
INVALID
|
| medium |
LF-only header line separation creates parser differential readLine |
headerscanner.go |
VALID
|
| medium |
readBodyIdentity allows unbounded body growth when maxBodySize <= 0 readBodyIdentity |
http.go |
INVALID
|
| medium |
ContinueReadBodyStream silently returns oversized body stream on ErrBodyTooLarge ContinueReadBodyStream |
http.go |
INVALID
|
| medium |
Unvalidated IPv6 zone allows arbitrary bytes validateIPv6Literal |
ipv6.go |
INVALID
|
| medium |
Lazy init panics when Clients is empty even if AddClient populated cs LBClient.init |
lbclient.go |
INVALID
|
| medium |
Nil request or response forwarded unchecked to client and health callback lbClient.DoDeadline |
lbclient.go |
INVALID
|
| medium |
IPv6 and non-TCP remote addresses collapse to the same counter key 0 getConnIP4 |
peripconn.go |
VALID
|
| medium |
Pooled wrapper can be closed after reuse, closing a different connection perIPConn.Close / perIPTLSConn.Close |
peripconn.go |
INVALID
|
| medium |
Goroutine and memory leak on client disconnect during long profile or trace PprofHandler |
pprofhandler/pprof.go |
INVALID
|
| medium |
Stale child signals and PID reuse can corrupt child process tracking Prefork.prefork |
prefork/prefork.go |
INVALID
|
| medium |
Index out of range panic in FormFile on empty file header slice RequestCtx.FormFile |
server.go |
INVALID
|
| medium |
Unbounded multipart form memory allocation via default FormValue/MultipartForm (DoS) RequestCtx.FormValue / RequestCtx.MultipartForm |
server.go |
INVALID
|
| medium |
Permanent worker goroutines and channel per NewFunc instance NewFunc |
stackless/func.go |
INVALID
|
| medium |
Hidden worker can be terminated by f panic or runtime.Goexit funcWorker |
stackless/func.go |
INVALID
|
| medium |
Nil destination writer causes panic when flushing buffered output (*writer).do |
stackless/writer.go |
INVALID
|
| medium |
HTTP status-line control-character injection formatStatusLine |
status.go |
INVALID
|
| medium |
Nil StreamWriter accepted without validation NewStreamReader |
stream.go |
INVALID
|
| medium |
Premature end-of-stream is reported as normal EOF for fixed Content-Length bodies requestStream.Read |
streaming.go |
INVALID
|
| medium |
Unbounded DNS cache growth allows memory exhaustion getTCPAddrs / dial |
tcpdialer.go |
INVALID
|
| medium |
No concurrency limit on DNS resolution — unlimited concurrent resolver queries dial / getTCPAddrs |
tcpdialer.go |
INVALID
|
| medium |
File descriptor leak when fcntl fails after socket creation newSocketCloexec |
tcplisten/socket_zos_s390x.go |
INVALID
|
| medium |
Nil Config receiver can panic in NewListener (*Config).NewListener |
tcplisten/tcplisten.go |
INVALID
|
| medium |
ReleaseTimer panics on nil timer ReleaseTimer |
timer.go |
INVALID
|
| medium |
Quadratic-time denial of service in path normalization normalizePath |
uri.go |
VALID
|
| medium |
Reset may invoke malicious or invalid io.Closer values Reset() |
userdata.go |
INVALID
|
| low |
Stale key/value slices retained after Reset, ReleaseArgs, and Del Args.Reset |
args.go |
–
|
| low |
Quadratic copy cost when deleting many duplicate query args Args.Del |
args.go |
–
|
| low |
Algorithmic-complexity DoS in Args.Del/DelBytes (O(n^2) delAllArgsStable) delAllArgsStable / Del / DelBytes |
args.go |
–
|
| low |
Possible index-out-of-range panic in b2s for empty byte slices AddBytesKV / SetBytesKV / DelBytes / PeekMultiBytes (via b2s) |
args.go |
–
|
| low |
Nil io.Writer causes panic in WriteBrotliLevel default branch WriteBrotliLevel |
brotli.go |
–
|
| low |
WriteBrotliLevel returns uncompressed input length instead of compressed byte count for non-blocking writers WriteBrotliLevel |
brotli.go |
–
|
| low |
ParseUfloat checks negative value before parse error ParseUfloat |
bytesconv.go |
–
|
| low |
Panic on negative int in writeHexInt / AppendUint (DoS if reachable) writeHexInt, AppendUint |
bytesconv.go |
–
|
| low |
AddMissingPort fails to append default port for unbracketed IPv6 literals AddMissingPort |
client.go |
–
|