CVE-2026-24895

FrankenPHP affected by Path Confusion via Unicode casing in CGI path splitting allows execution of arbitrary files

State
Published
Severity
8.9 High
Published
Feb 12, 2026
Updated
Feb 12, 2026
Reserved
Jan 27, 2026

Read the record on cve.org

Description

FrankenPHP is a modern application server for PHP. Prior to 1.11.2, FrankenPHP’s CGI path splitting logic improperly handles Unicode characters during case conversion. The logic computes the split index (for finding .php) on a lowercased copy of the request path but applies that byte index to the original path. Because strings.ToLower() in Go can increase the byte length of certain UTF-8 characters (e.g., Ⱥ expands when lowercased), the computed index may not align with the correct position in the original string. This results in an incorrect SCRIPT_NAME and SCRIPT_FILENAME, potentially causing FrankenPHP to execute a file other than the one intended by the URI. This vulnerability is fixed in 1.11.2.

Scores

CVSSScoreVectorSource
4.08.9 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:PGitHub_M

Weaknesses

  • CWE-180 Incorrect Behavior Order: Validate Before Canonicalize

Affected Products

ProductVersions
frankenphpphp
  • < 1.11.2Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.