Abdrrahimdahmani

#8996de 53,639
30.4CVSS total
Vulnerabilidades · 4
Média
2
Crítica
2
PT-2026-7872
9.8
2026-02-12
Unknown · Frankenphp · CVE-2026-24895
**Nome do Software Vulnerável e Versões Afetadas** Versões do FrankenPHP anteriores à 1.11.2 **Descrição** A lógica de divisão de caminho CGI do FrankenPHP manipula inadequadamente caracteres Unicode durante a conversão de caixa. A lógica calcula o índice de divisão para encontrar `.php` em uma cópia do caminho da requisição em minúsculas, mas aplica esse índice de byte ao caminho original. Como `strings.ToLower()` em Go pode aumentar o comprimento em bytes de certos caracteres UTF-8, o índice calculado pode não se alinhar com a posição correta na string original. Isso resulta em um `SCRIPT NAME` e `SCRIPT FILENAME` incorretos, potencialmente fazendo com que o FrankenPHP execute um arquivo diferente daquele pretendido pela URI. A vulnerabilidade reside na função `splitPos()` e no seu uso dentro de `splitCgiPath()`. O problema é que o índice retornado representa um offset de byte dentro do caminho em minúsculas, mas este índice é usado para fatiar o caminho original. Esta lógica depende da suposição de que o comprimento do caminho em minúsculas é igual ao comprimento do caminho original, o que é falso para certos caracteres Unicode. Por exemplo, o caractere `Ⱥ` (U+023A) requer 2 bytes em UTF-8, mas seu equivalente em minúsculas `ⱥ` (U+2C65) requer 3 bytes. Se o caminho contiver tais caracteres antes da extensão `.php`, o índice calculado no caminho em minúsculas será maior que a posição correspondente no caminho original. Quando aplicado ao caminho original, a divisão ocorre no offset de byte errado. Isso pode fazer com que o servidor trate uma porção maior do caminho como o nome do script, efetivamente permitindo que um atacante manipule o `SCRIPT FILENAME`. Esta é uma questão de bypass de limite de segurança e confusão de caminho que pode levar à Execução Remota de Código (RCE) em configurações onde os usuários podem fazer upload de arquivos para um caminho acessível. A vulnerabilidade pode ser explorada elaborando uma requisição com caracteres Unicode específicos para forçar o FrankenPHP a calcular o `SCRIPT FILENAME` como terminando em um arquivo com uma extensão segura (ex: `payload.txt`), enquanto a requisição parece conter `.php` para a lógica interna do roteador. A função vulnerável é `splitPos()`, que é usada por `splitCgiPath()`. Os parâmetros vulneráveis são as variáveis `path` e `split` usadas dentro dessas funções. **Recomendações** Versões anteriores à 1.11.2 devem ser atualizadas para a versão 1.11.2 ou posterior.
PT-2026-21775
9.8
2026-01-01
Caddy · Caddy · CVE-2026-27590
**Nome do Software Vulnerável e Versões Afetadas** Versões do Caddy anteriores a 2.11.1 Versões do FrankenPHP anteriores a 1.11.2 **Descrição** Caddy e FrankenPHP são vulneráveis a um problema de confusão de caminho devido ao tratamento incorreto de caracteres Unicode durante a conversão para minúsculas na lógica de divisão de caminho FastCGI. O software calcula o índice de divisão em uma cópia convertida para minúsculas do caminho da solicitação e, em seguida, usa esse índice de byte para dividir o caminho original. Isso é inseguro para Unicode porque `strings.ToLower()` pode alterar o comprimento em bytes UTF-8 de alguns caracteres, levando a um `SCRIPT NAME`/`SCRIPT FILENAME` e `PATH INFO` incorretos. Isso pode fazer com que uma solicitação contendo `.php` execute um arquivo diferente no disco do que o pretendido. Em configurações onde um atacante pode controlar o conteúdo dos arquivos, isso pode levar à execução não intencional de arquivos não-.php como PHP, potencialmente resultando em execução remota de código (RCE). O problema decorre do uso da função `splitPos()`, que calcula o índice de divisão com base no comprimento em bytes do caminho convertido para minúsculas e, em seguida, aplica esse índice ao caminho original. Isso pode levar a uma discrepância quando caracteres Unicode que se expandem ao serem convertidos para minúsculas estão presentes no caminho. **Recomendações** Versões do Caddy anteriores a 2.11.1: atualize para a versão 2.11.1 ou posterior. Versões do FrankenPHP anteriores a 1.11.2: atualize para a versão 1.11.2 ou posterior.