{"id":"CVE-2026-45062","published":"2026-06-10T17:38:42Z","modified":"2026-06-11T14:00:50Z","title":"FrankenPHP: Unsafe Unicode Handling in CGI Path Splitting Allows Execution of Non-PHP Files","vendor":"PHP","product":"frankenphp","tier":"tail","description":{"text":"FrankenPHP is a modern application server for PHP. From version 1.11.2 to before version 1.12.3, the splitPos() function in cgi.go misuses golang.org/x/text/search with search.IgnoreCase when the request path contains a non-ASCII byte. Two distinct flaws in that fallback let an attacker mislead FrankenPHP into treating a non-.php file as a .php script. In any deployment where the attacker can place content into a file served by FrankenPHP (uploads, file storage, etc.), this can be escalated to remote code execution by crafting a URL whose path triggers either flaw. This issue has been patched in version 1.12.3.","provenance":"source","from":"CVE.org"},"cvss":{"score":8.1,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00714,"percentile":0.53556,"provenance":"source"},"cwes":[{"id":"CWE-20","name":"Improper Input Validation"},{"id":"CWE-176","name":"Improper Handling of Unicode Encoding"},{"id":"CWE-178","name":"Improper Handling of Case Sensitivity"}],"references":[{"url":"https://github.com/php/frankenphp/security/advisories/GHSA-3g8v-8r37-cgjm","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/php/frankenphp/releases/tag/v1.12.3","tags":["x_refsource_MISC"]}],"priority":{"score":16.4,"factors":[{"name":"EPSS percentile","points":10.71},{"name":"CVSS severity","points":5.67}]},"vendorSlug":"php","affectedVersions":[{"vendor":"php","product":"frankenphp","versions":[">= 1.11.2, < 1.12.3"]}],"affected":[{"ecosystem":"Go","package":"github.com/dunglas/frankenphp","vulnerableRanges":[">=1.11.2, <1.12.3"],"patched":["1.12.3"],"from":["GHSA-3g8v-8r37-cgjm","GO-2026-5084"],"provenance":"source"}],"euvd":{"id":"EUVD-2026-36075","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-php-frankenphp-cve-2026-24895","children":[{"from":"CVE-2026-45062","to":"CVE-2026-45135","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-m675-2p33-xv9g","via":"reference","url":"https://github.com/php/frankenphp/security/advisories/GHSA-3g8v-8r37-cgjm"},{"kind":"osv-related","provenance":"source","id":"GO-2026-5492","via":"reference","url":"https://github.com/php/frankenphp/security/advisories/GHSA-3g8v-8r37-cgjm"}]}],"packageHistory":[{"cve":"CVE-2026-24894","published":"2026-02-12","fixed":"1.11.2","kev":false},{"cve":"CVE-2026-24895","published":"2026-02-12","fixed":"1.11.2","kev":false,"link":{"from":"CVE-2026-24895","to":"CVE-2026-45062","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Go:github.com/dunglas/frankenphp","fromFixed":"1.11.2","toFixed":"1.12.3","daysApart":118}]}},{"cve":"CVE-2026-45062","published":"2026-06-10","fixed":"1.12.3","kev":false},{"cve":"CVE-2026-82416","published":"2026-10-13","fixed":"1.12.5","kev":false,"link":{"from":"CVE-2026-45062","to":"CVE-2026-82416","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Go:github.com/dunglas/frankenphp","fromFixed":"1.12.3","toFixed":"1.12.5","daysApart":125}]}}],"package":"Go:github.com/dunglas/frankenphp"}}