
Laboratório baseado em Docker que reproduz o CVE-2024-31218, uma falha de criação de administrador do PocketBase sem autenticação no Webhood, com PoC, deteção e verificação de remediação.
Este projeto é um laboratório controlado de pesquisa de segurança e reprodução de vulnerabilidade para CVE-2024-31218, uma vulnerabilidade crítica de autenticação que afeta versões do Webhood anteriores à 0.9.1.
A vulnerabilidade está relacionada à criação não autenticada de uma conta de administrador do PocketBase quando nenhuma conta de administrador existe. Um atacante que consiga alcançar a API afetada pode ser capaz de criar uma conta administrativa sem autenticação prévia.
O objetivo deste laboratório é:
Segurança: Este projeto destina-se apenas a um ambiente de laboratório local isolado. A aplicação vulnerável nunca deve ser exposta à Internet pública ou usada contra sistemas sem autorização.
| Campo | Detalhes |
|---|---|
| CVE | CVE-2024-31218 |
| Projeto | Webhood |
| Versões afetadas | Webhood <= 0.9.0 |
| Versão corrigida | Webhood 0.9.1 |
| Severidade | Crítica |
| CVSS v3.1 | 9.8 |
| CWE | CWE-306 — Autenticação Ausente para Função Crítica |
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Nenhum |
| Interação do Usuário | Nenhuma |
| Confidencialidade | Alta |
| Integridade | Alta |
| Disponibilidade | Alta |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2. Descrição da Vulnerabilidade
A CVE-2024-31218 é causada por proteção de autenticação insuficiente em torno da criação de administrador na aplicação Webhood/PocketBase afetada.
Quando a aplicação não possui uma conta de administrador configurada, a funcionalidade de criação de administrador pode ser alcançada sem autenticação.
Um atacante capaz de alcançar a API afetada pode, portanto, tentar criar a primeira conta de administrador.
A exploração bem-sucedida pode resultar em acesso administrativo à aplicação.
A vulnerabilidade é classificada como:
CWE-306: Autenticação Ausente para Função Crítica
3. Versões Afetadas e Corrigidas
O intervalo vulnerável é:
Webhood <= 0.9.0
A vulnerabilidade foi corrigida em:
Webhood 0.9.1
A versão corrigida deve, portanto, ser usada para verificação de remediação.
4. Superfície de Ataque
A superfície de ataque relevante é a API administrativa do PocketBase.
A funcionalidade vulnerável envolve a criação de conta de administrador.
Conceitualmente, o fluxo de ataque é:
Atacante
|
| Requisição HTTP
v
API Webhood / PocketBase
|
| Endpoint de criação de administrador
v
Criação de conta de administrador
|
v
Acesso administrativo não autorizado
O ataque não requer uma sessão autenticada existente quando a condição vulnerável de administrador inicial está presente.
5. Causa Raiz
A causa raiz é uma falha no controle de autenticação.
A funcionalidade de criação de administrador não restringia suficientemente o acesso quando nenhuma conta de administrador existia.
A fronteira de segurança deve garantir que funcionalidades administrativas privilegiadas não possam ser abusadas por um cliente remoto não autenticado.
O comportamento vulnerável representa, portanto, uma verificação de autenticação ausente em torno de uma operação sensível à segurança.
6. Arquitetura do Laboratório Controlado
O laboratório reproduz o comportamento da API administrativa do PocketBase
subjacente à CVE-2024-31218.
O ambiente Docker usa o componente PocketBase diretamente em vez de
alegar empacotar a aplicação Webhood 0.9.0 completa.
A arquitetura do laboratório é:
+-------------------------+
| Máquina Hospedeira |
| |
| PowerShell / Python |
+------------+------------+
|
| 127.0.0.1:8090
v
+-------------------------+
| Contêiner Docker |
| |
| +-------------------+ |
| | PocketBase | |
| | API Administrativa| |
| +-------------------+ |
| |
+-------------------------+
O serviço está vinculado apenas ao localhost e não se destina a ser exposto
à Internet pública.
Todas as credenciais usadas durante a reprodução são credenciais sintéticas de laboratório.
7. Estrutura do Repositório
CVE-2024-31218-WEBHOOD-LAB/
│
├── README.md
│
├── vulnerable/
│ ├── Dockerfile
│ └── docker-compose.yml
│
├── exploit/
│ └── reproduce.py
│
├── detection/
│ └── detect.py
│
├── patched/
│ └── README.md
│
├── evidence/
│ └── README.md
│
└── blog/
└── CVE-2024-31218-Technical-Blog.pdf
8. Ambiente Vulnerável
O ambiente vulnerável foi projetado para reproduzir o comportamento da API
administrativa do PocketBase associado à CVE-2024-31218 em um contêiner
Docker isolado.
O laboratório usa o PocketBase diretamente como o componente afetado em vez de
alegar reproduzir a aplicação Webhood 0.9.0 completa.
A configuração do Docker irá:
- Construir o ambiente de laboratório.
- Iniciar o PocketBase localmente.
- Vincular o serviço ao localhost.
- Manter o serviço isolado de sistemas externos.
- Fornecer um ambiente reproduzível para testes.
- Permitir que o script de reprodução interaja com a API administrativa.
O laboratório atual usa uma conta de administrador sintética e não
contém dados de usuário ou credenciais reais.
9. Metodologia de Reprodução
O procedimento de reprodução foi projetado apenas para o laboratório local.
Passo 1 — Iniciar o contêiner vulnerável
docker compose up --build
Passo 2 — Verificar o serviço
Confirme que o serviço PocketBase usado para o laboratório em nível de componente está respondendo localmente.
Passo 3 — Executar o script de reprodução controlada
O script de reprodução enviará a requisição relevante para a instância vulnerável local.
Exemplo:
python exploit/reproduce.py
Passo 4 — Observar a resposta
A resposta deve demonstrar se a aplicação aceita a requisição de criação de administrador não autenticada.
Passo 5 — Verificar o estado resultante
O laboratório deve verificar se uma conta de administrador foi criada.
Nenhum alvo externo deve jamais ser usado.
10. Detecção
A detecção deve identificar indicadores associados a tentativas não autorizadas de criação de administrador.
Indicadores potenciais incluem:
Requisições para funcionalidade de criação de administrador
Requisições não autenticadas para endpoints administrativos
Criação inesperada de uma primeira conta de administrador
Requisições HTTP originadas de um cliente inesperado
Tentativas repetidas de criação de administrador
Criação de conta administrativa imediatamente após a inicialização da aplicação
O script de detecção está localizado em:
detection/detect.py
11. Remediação
A remediação primária é atualizar o Webhood para a versão corrigida:
Webhood 0.9.1
A versão vulnerável não deve ser usada em produção.
Uma solução alternativa documentada é restringir o acesso à funcionalidade da API de administrador afetada quando uma atualização não puder ser realizada imediatamente.
Após a remediação:
Pare o contêiner vulnerável.
Substitua a versão vulnerável pela versão corrigida.
Reconstrua o contêiner.
Inicie o ambiente corrigido.
Repita a tentativa de reprodução.
Confirme que o comportamento vulnerável não é mais possível.
Revise os logs da aplicação em busca de requisições administrativas inesperadas.
12. Remediação e Verificação
A correção oficial do Webhood para a CVE-2024-31218 foi verificada usando a versão de código-fonte real do Webhood `v0.9.1`.
O commit de correção é:
`735e7fa2814edeec9a2c07778ed51b3c018609f9`
A correção adiciona a migração:
`src/backend/migrations/1712252550_generate_random_admin.js`