
CVE-2025-10035_GoAnywhere Get RCE

Descrição
Um verificador Python leve que detecta se uma instância do GoAnywhere é vulnerável à CVE‑2025‑10035.
Esta ferramenta envia uma solicitação GET especialmente elaborada com um User-Agent aleatório (usando fake-useragent com uma lista de fallback), não segue redirecionamentos, inspeciona o cabeçalho Location e classifica a instância como Não corrigida (vulnerável) ou Corrigida (não vulnerável).
Nota: este repositório contém atualmente apenas o verificador. Um PoC pode ser adicionado posteriormente em um local separado e claramente identificado, se/quando for apropriado — por enquanto, este projeto é apenas de detecção.
CVE‑2025‑10035 (resumo para este verificador)
Um AdminErrorHandlerServlet do GoAnywhere não corrigido pode gerar um token válido de solicitação de licença e retorná-lo embutido em uma URL de redirecionamento. Esse token normalmente aparece como um parâmetro de consulta bundle no cabeçalho Location (geralmente redirecionando para my.goanywhere.com).
my.goanywhere.com (ou outro host) com um parâmetro de consulta bundle. A presença de bundle = vulnerável./license/Unlicensed.xhtml sem bundle, ou não redireciona.Lembrete ético: execute este verificador apenas contra sistemas que você possui ou para os quais tem autorização explícita de teste. A varredura não autorizada pode ser ilegal e/ou perturbadora.
User-Agent aleatório por solicitação (fake-useragent + lista de fallback).allow_redirects=False) para que o cabeçalho Location possa ser inspecionado.multiprocessing.dummy.Pool.colorama.requestsfake-useragentcoloramaurllib3 (geralmente instalado com requests)requirements.txt
python -m venv .venv # optional but recommended source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt
Abaixo estão exemplos práticos que você pode copiar/colar para executar o verificador em diferentes cenários: teste rápido de alvo único, varredura em lote, varredura de baixa taxa para segurança em produção, execução dentro do Docker e um trecho mínimo de GitHub Actions para executar o verificador periodicamente ou a cada push.
Esses exemplos pressupõem que seu arquivo de script se chama
check_goanywhere.pye é executável compython check_goanywhere.py. Ajuste nomes de arquivos, caminhos e quantidades de threads conforme seu ambiente.
# Scan targets listed in examples/targets.txt and append vulnerable hosts to results.txt
python check_goanywhere.py examples/targets.txt results.txt
# Use 10 worker threads for faster scanning (be careful with concurrency against production)
python check_goanywhere.py examples/targets.txt results.txt 10
Abaixo estão exemplos realistas de saída que você pode esperar ao executar o verificador. Todos os exemplos assumem que o banner padrão é exibido no início; as linhas entre [] mostram as mensagens de status coloridas que o script imprime no terminal. Após a varredura, os hosts vulneráveis são adicionados ao arquivo de resultados.