PT-2026-21775 · Caddy · Caddy

Abdrrahimdahmani

+1

·

Published

2026-01-01

·

Updated

2026-03-03

·

CVE-2026-27590

CVSS v3.1

9.8

Critical

VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions Caddy versions prior to 2.11.1 FrankenPHP versions prior to 1.11.2
Description Caddy and FrankenPHP are vulnerable to a path confusion issue due to incorrect handling of Unicode characters during case conversion in the FastCGI path splitting logic. The software computes the split index on a lowercased copy of the request path and then uses that byte index to slice the original path. This is unsafe for Unicode because strings.ToLower() can change UTF-8 byte length for some characters, leading to an incorrect SCRIPT NAME/SCRIPT FILENAME and PATH INFO. This can cause a request containing .php to execute a different on-disk file than intended. In setups where an attacker can control file contents, this can lead to unintended PHP execution of non-.php files, potentially resulting in remote code execution (RCE). The issue stems from the use of the splitPos() function, which calculates the split index based on the byte length of the lowercased path, and then applies this index to the original path. This can lead to a mismatch when Unicode characters that expand when lowercased are present in the path.
Recommendations Caddy versions prior to 2.11.1: Upgrade to version 2.11.1 or later. FrankenPHP versions prior to 1.11.2: Upgrade to version 1.11.2 or later.

Exploit

Fix

RCE

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-27590
GHSA-5R3V-VC8M-M96G
GHSA-G966-83W7-6W38
GO-2026-4536
SUSE-SU-2026:0757-1

Affected Products

Caddy