
Non-destructive Go verifier that checks whether a Camaleon CMS instance applies the authorization fix for CVE-2026-102261 in the media crop endpoint.
Este projeto contém um verificador não destrutivo para confirmar se uma instância autorizada do Camaleon CMS aplica a autorização introduzida na versão 2.9.3.
O problema afeta o POST /admin/media/crop no Camaleon CMS até 2.9.2. Um usuário com :manage, :media, mas sem :manage, :users, podia fornecer o ID de outro usuário em saved_avatar e atingir uma escrita de avatar fora do seu objeto autorizado. A correção exige :manage, :users para qualquer alvo que não seja o próprio usuário.
O verificador envia um único POST autenticado com:
saved_avatar de uma conta descartável diferente da conta autenticada;cp_img_path deliberadamente inexistente.Na versão corrigida, a autorização ocorre antes de qualquer processamento de arquivo e a aplicação responde com redirecionamento (normalmente 302). Em uma versão antiga, a requisição não é negada nessa etapa e o resultado é apenas INCONCLUSIVO: este programa não envia imagem, não lê dados e não tenta modificar avatar algum.
Crie duas contas de teste no mesmo site:
:manage, :media, mas sem :manage, :users;Obtenha o cookie de sessão da primeira conta e execute:
go test ./...
go run . \
--i-own-this-lab \
--url http://127.0.0.1:3000 \
--cookie '_session_id=COLOQUE_A_SESSAO_DE_TESTE_AQUI' \
--nonself-user-id 42
PROTECTED significa que o endpoint negou a operação antes de processar o caminho de imagem. INCONCLUSIVE pede validação da versão instalada e atualização; não é confirmação de exploração.
Atualize para Camaleon CMS 2.9.3 ou posterior. O patch é c143e145caa600947e70a240e87f2fed889149d3.