Caddy's FastCGI transport uses golang.org/x/text/search with search.IgnoreCase in splitPos() when a request path contains a non-ASCII byte. The fallback has two flaws: one path can retain a stale successful-match state after encountering a non-ASCII byte, while Unicode case folding can treat ASCII lookalikes as a valid configured extension. Caddy can therefore calculate the FastCGI split position incorrectly and treat a file without .php, or without another configured split_path extension, as a script. The key precondition is that an attacker can place content in a file served through FastCGI, such as through an upload feature or user-content store, and then send a network request with a path that triggers the flaw. The vendor states that valid SplitPath entries are ASCII-only and lower-cased, but the Unicode fallback bypassed that constraint. The specific FastCGI application, process privileges and file-storage layout remain deployment-dependent.