# UNDF: UNDF-2026-000000469 # Netty — CWE-407 Scan Result: CLEAN **Date:** 2026-03-28 **Repo:** https://github.com/netty/netty (depth=1) **Modules scanned:** transport, codec, codec-http, codec-http2, codec-classes-quic, codec-mqtt, codec-smtp, handler (SSL/TLS), resolver-dns, common ## Summary No qualifying CWE-407 defects found in Netty. ## Candidates reviewed and rejected | Location | Pattern | Reason disqualified | |---|---|---| | `handler/ssl/JdkBaseApplicationProtocolNegotiator.java:146` | `for (p : supportedProtocols) { protocols.contains(p) }` | Both collections bounded to ≤4 ALPN protocol strings; trivial constant | | `handler/ssl/SupportedCipherSuiteFilter.java:51` | `for (c : ciphers) { supportedCiphers.contains(c) }` | `supportedCiphers` is `Set` — O(1) lookup | | `resolver-dns/DnsNameResolverBuilder.java:568` | `for (f : searchDomains) { list.contains(f) }` | Search domain dedup; bounded ≤6 by RFC 1535 | | `resolver-dns/DnsResolveContext.java:914` | `finalResult.contains(converted)` | Intentional ArrayList choice with code comment explaining the tradeoff; duplicates rare in practice | | `codec-classes-quic/QuicCodecDispatcher.java:91` | `contextList.indexOf(ctxDispatcher)` | One-shot call after `add`, not in a loop | ## Conclusion Netty uses `Set` for all cipher-suite and cipher-blacklist lookups, `HashMap`/`CharSequenceMap` for header tables, and purpose-built hash tables for HPACK. No O(N²) membership patterns in hot paths.